我有一个bool的专栏。我怎样才能设置真值假值?这是我的疑问:
Update [mydb].[dbo].[myTable]
SET isTrue =
(
CASE WHEN Name = 'Jason' THEN 1
END
)
我不知道在 THEN 关键字后要写什么。我应该写 1 或 true 或 1 AS BIT 还是其他什么?
答案 0 :(得分:16)
Sql server没有boolean
数据类型
相反,它具有bit
数据类型,其中可能的值为0
或1
。
因此,要回答您的问题,您应使用1
表示true
值,0
表示false
值,或null
表示未知值
Update [mydb].[dbo].[myTable]
SET isTrue =
CASE WHEN Name = 'Jason' THEN
1
ELSE
0
END
答案 1 :(得分:1)
您添加的查询将正常工作,但您必须处理“FALSE”部分,否则它将尝试在列中输入NULL。 您对isTrue列有任何默认值约束吗?
Update [mydb].[dbo].[myTable]
SET isTrue =
(
CASE WHEN Name = 'Jason' THEN 1 ELSE 0
END
)
答案 2 :(得分:1)
你需要case语句,如果没有满足任何条件,则需要
Update [mydb].[dbo].[myTable]
SET isTrue = ( CASE WHEN Name = 'Jason'
THEN 1 else 0
END)
答案 3 :(得分:0)
使用SQL Server的IIF功能
DECLARE @a int = 45, @b int = 40;
DECLARE @a int = 45, @b int = 40;
SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;
Result
--------
TRUE
(1 row(s) affected)
针对您的问题
Update [mydb].[dbo].[myTable]
SET isTrue = ( Name = 'Jason', 'TRUE', 'FALSE' )