SQL从varchar列获取布尔值

SQL从varchar列获取布尔值,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我试图根据列注释是否为空,将结果设置为1或0 列是一个varchar,我希望查询结果为该列提供一个boolean值note SELECT id, product, note FROM myTABLE 我累的是 SELECT id, product, CASE WHEN ISNULL(note) THEN 0 ELSE 1 FROM myTable 但是我得到了一个错误。。。我相信有一个简单的解决办法,我错过了,所以请帮助。谢谢。试试看 SELECT id, product,CASE WHEN

我试图根据列
注释
是否为空,将结果设置为1或0

列是一个
varchar
,我希望查询结果为该列提供一个
boolean
note

SELECT id, product, note FROM myTABLE
我累的是

SELECT id, product, CASE WHEN ISNULL(note) THEN 0 ELSE 1 FROM myTable
但是我得到了一个错误。。。我相信有一个简单的解决办法,我错过了,所以请帮助。谢谢。

试试看

SELECT id, product,CASE WHEN note IS NULL THEN 0 ELSE 1 END as SomeColumn
FROM myTable
要同时检查空白和null,请使用NULLIF

SELECT id, product,
CASE WHEN NULLIF(note,'') IS NULL THEN 0 ELSE 1 END as SomeColumn
FROM myTable

啊,愚蠢的我忘记了
结束
,感谢您的简单修复,我会在10分钟结束后标记为答案。非常感谢。注意是NULL而不是ISNULL()哦,我注意到一个问题,如果列为空而不是NULL,它仍然返回1。如果列为空或nullnvm忽略了上面的注释,我如何才能得到0,我只需要添加or语句并进行检查。总之,我的最后一个查询是这样的:
选择id、product、CASE,当note为NULL或note=''时,则0或1结束为myTable中的SomeColumn
如果为空,则可以使用NULLIF(note'')返回NULL