SQL视图不接受子类
我需要从表中的字符串字段中获取视图中的布尔字段。如果字符串已填充,则布尔字段应为SQL视图不接受子类,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要从表中的字符串字段中获取视图中的布尔字段。如果字符串已填充,则布尔字段应为True: SELECT (MasterId IS NOT NULL) AS HasMaster FROM entries 但是,这会导致错误: 关键字“IS”附近的语法不正确 为什么会这样?如何修复?试试这个 SELECT (CASE WHEN MasterId IS NOT NULL THEN 1 ELSE 0 END) AS HasMaster FROM entries SQL Server中没有布尔值
True
:
SELECT (MasterId IS NOT NULL) AS HasMaster FROM entries
但是,这会导致错误:
关键字“IS”附近的语法不正确
为什么会这样?如何修复?试试这个
SELECT (CASE WHEN MasterId IS NOT NULL THEN 1 ELSE 0 END) AS HasMaster
FROM entries
SQL Server中没有布尔值,因此您可以在这里的CASE
表达式中使用'0'
和'1'
。试试这个
SELECT (CASE WHEN MasterId IS NOT NULL THEN 1 ELSE 0 END) AS HasMaster
FROM entries
SQL Server中没有布尔值,因此您可以在这里的
CASE
表达式中使用'0'
和'1'
。尝试以下代码:
SELECT CAST(CASE WHEN MasterId IS NULL THEN 0 ELSE 1 END AS BIT) [HasMaster]
FROM entries
请尝试以下代码:
SELECT CAST(CASE WHEN MasterId IS NULL THEN 0 ELSE 1 END AS BIT) [HasMaster]
FROM entries
问题:我需要从表中的字符串字段中获取视图中的布尔字段。如果字符串已填充,则布尔字段应为True 回答:使用
case
select case when MasterId is null then 0 else 1 end
from table_name
问题:我需要从表中的字符串字段中获取视图中的布尔字段。如果字符串已填充,则布尔字段应为True 回答:使用
case
select case when MasterId is null then 0 else 1 end
from table_name
您需要通过case expression进行检查。SQL SERVER没有布尔类型。尝试
CASE WHEN blah然后1 ELSE 0 END
尝试google CASE WHEN statement SQL有布尔表达式,但这些表达式永远不能用于需要值的地方,只能在条件子句中使用(IF
,where
,CASE
,等等)。是的,这是语言中的一个缺陷。您需要通过大小写表达式进行检查。SQL SERVER没有布尔类型。尝试CASE WHEN blah然后1 ELSE 0 END
尝试google CASE WHEN statement SQL有布尔表达式,但这些表达式永远不能用于需要值的地方,只能在条件子句中使用(IF
,where
,CASE
,等等)。是的,这是语言中的一个缺陷。严格来说,0
和1
不是布尔值-至少在SQL标准中不是。但是,由于SQL Server不支持布尔值,这是一个解决方法。提示,不要重复回答中的问题,答案就足够了。youtube链接有什么相关性?我假设这是你的,你想发垃圾邮件?严格来说,0
和1
不是布尔值-至少在SQL标准中不是。但是,由于SQL Server不支持布尔值,这是一个解决方法。提示,不要重复回答中的问题,答案就足够了。youtube链接有什么相关性?我猜这是你的,你想发垃圾邮件?