我有一个varchar字段,包含数字和日期作为字符串.我想更新此字段中大于720的所有数字.我首先尝试进行选择,但是我收到此错误:
Conversion failed when converting the nvarchar value '16:00' to data type int.
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
select id, case(isnumeric([other08])) when 1 then [other08] else 0 end
from CER where sourcecode like 'ANE%' --and other08 > 720
Run Code Online (Sandbox Code Playgroud)
当我取消注释最后一部分时,它会失败.
我试图让所有数字大于720,但我不能做comaprison.它在铸造和转换时也会失败.
谢谢大家的帮助
您还需要在WHERE子句中执行检查和转换:
SELECT
id,
CASE WHEN isnumeric([other08]) = 1 THEN CAST([other08] AS INT) ELSE 0 END
FROM CER
WHERE sourcecode LIKE 'ANE%'
AND CASE WHEN isnumeric([other08]) = 1 THEN CAST([other08] AS INT) ELSE 0 END > 720
Run Code Online (Sandbox Code Playgroud)