SQL View不接受子条款

时间:2018-01-16 08:17:54

标签: sql sql-server tsql

我需要从表中的字符串字段获取视图中的布尔字段。如果字符串已填充,则布尔字段应为True

SELECT (MasterId IS NOT NULL) AS HasMaster FROM entries

但是,这会导致错误:

  

关键字' IS'

附近的语法不正确

为什么这样以及如何解决?

3 个答案:

答案 0 :(得分:5)

请尝试以下代码:

SELECT CAST(CASE WHEN MasterId IS NULL THEN 0 ELSE 1 END AS BIT) [HasMaster]
FROM entries

答案 1 :(得分:1)

试试这个,

SELECT (CASE WHEN MasterId IS NOT NULL THEN 1 ELSE 0 END) AS HasMaster 
FROM  entries

SQL Server中没有布尔值,因此您可以在'0'表达式中使用'1'CASE

答案 2 :(得分:-1)

问题:我需要从表格中的字符串字段获取视图中的布尔字段。如果字符串已填充,则布尔字段应为True

答案:使用case

select case when MasterId is null then 0 else 1 end
from table_name