我有一列包含字符和数字
12 13 14 19K/YR 22
因此,列类型为varchar。但是,然后我也在此列上进行了一些计算,因此,我尝试将数据转换为浮点型(如果是数字)。
这给我一个错误:
SELECT CASE ISNUMERIC(QTY) WHEN 1 THEN CAST(QTY AS float) ELSE QTY END AS test
您不能将其强制转换为浮点并将字符串保留在同一列中。您可以执行以下操作,以在isnumeric返回0时获得null。
SELECT CASE ISNUMERIC(QTY) WHEN 1 THEN CAST(QTY AS float) ELSE null END