Min*_*iel 1 sql sql-server sql-server-2008
我正在使用SQL Server 2008
我有一个名为varEnteredValue数据类型的列sql_Variant.
当我执行以下select语句时,我什么都没得到
SELECT * FROM tblname WHERE varEnteredValue = 1
Run Code Online (Sandbox Code Playgroud)
请注意,此列中有许多值为1的值
题
我该如何解决这个问题?我需要转换数据类型吗?
Aar*_*and 11
这里有两个问题:
SQL_VARIANT为INT.INT,并且很难预测SQL Server是先过滤还是首先尝试转换.如果值是数字,则需要先测试,为了做到这一点,必须将其显式转换为字符串.这是一个解决这两个问题的示例:
WHERE CASE WHEN ISNUMERIC(CONVERT(VARCHAR(32), varEnteredValue)) = 1
THEN CONVERT(FLOAT, varEnteredValue) ELSE 0 END = 1;
Run Code Online (Sandbox Code Playgroud)
你为什么用SQL_VARIANT?
| 归档时间: |
|
| 查看次数: |
9467 次 |
| 最近记录: |