我正在使用 SQL Server 2005。我正在尝试从 TINYINT 字段中进行选择。如果该字段的值为 0 我想选择一个空字符串而不是 ' ' 。字段名称是水平的。这是我正在做的事情:
SELECT
[Level] =
Case
t.[Level]
WHEN 0 THEN ' '
ELSE t.[Level]
END
FROM table t
此代码始终返回 0。我试图解决问题并尝试了以下操作:
SELECT
[Level] =
Case
t.[Level]
WHEN 0 THEN 'test'
ELSE t.[Level]
END
FROM table t
我得到了一个错误Conversion failed when converting the varchar value 'test' to data type tinyint
所以我看到这里存在转换问题。我试过了:
SELECT
[Level] =
Case
t.[Level]
WHEN 0 THEN CONVERT(VARCHAR,t.[level])
ELSE t.[Level]
END
FROM table t
但这当然仍然返回 0,只是字符,所以它仍然没有做我需要的。我认为很可能有更好的方法来做到这一点,但不知道如何处理它。谁能给我一些关于如何处理这个问题的建议?非常感谢!