sql - 转换失败 (SQL Server 2008)

标签 sql sql-server sql-server-2008 t-sql

我有一个专栏

学生数据 ( varchar )

示例值:

Not regular
90
15.2
55
4
0
>15
regular
35

我有一个条件,要找出所有有 StudentData 的学生值大于 10 或者有一个 NULL 值。

当我尝试转换时,它失败并提示转换失败。如何获得这些值?我期待一个类似的结果集

studentdata
90
15.2
55

35

请指教。

最佳答案

我认为您正在寻找这个:

select * from t
where studentdata is null or 
  (isnumeric(studentdata) = 1 and CAST(studentdata AS float) > 10)

无论如何,您应该考虑在该列中存储适当的信息,而不是混合存储信息。

如果您有任何问题,请告诉我。

关于sql - 转换失败 (SQL Server 2008),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9986823/

相关文章:

python - mysql左连接: data from left table duplicated for every match

sql-server - 您能否捕获错误消息中的错误T-SQL

sql - 如何使此 CTE 查询打印具有 0 值的行?

mysql - 选择少数列的不同值和少数列的多个值

sql - 使用 Oracle SQL 获取表中所有列的值计数

sql - 我不确定在SQL中声明这些变量时出了什么问题

sql-server - SQL Server Best of X 比赛

sql-server-2008 - 多个字符串值参数传递给SSRS中的SP

sql - 为什么 SQL Join 会发现两个长度不同的字符串相等?

python - 使用 INSERT ... OUTPUT 和 pyodbc 时如何获取 IDENTITY 值