为什么这个语句返回 0 而不是空字符串?我实际上正在使用一个 View ,其中包含硬编码列的 select 语句返回 NULL。当我试图检查它是否为 NULL 时,它实际上返回 0。
SELECT ISNULL((SELECT NULL as Col), '')
任何建议或帮助将不胜感激......
最佳答案
NULL
没有明确的类型,但在普通的 SELECT NULL
中,它会以 int
类型返回。当表达式涉及 int
和 char(N)
时,int
获胜,char(N)
> value 被转换为 int
,而不是相反。更让人困惑的是,''
恰好可以毫无问题地转换为 int
,并且转换的结果是 0
。
SELECT ISNULL((SELECT CAST(NULL AS char(1)) AS col), '')
应返回空字符串。
关于sql - 对于具有 NULL 值的硬编码列,ISNULL 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165587/