如何在SQL中设置bool值

时间:2017-01-17 10:46:40

标签: sql sql-server

我有一个bool的专栏。我怎样才能设置真值假值?这是我的疑问:

Update [mydb].[dbo].[myTable]
SET isTrue =
(
CASE WHEN Name = 'Jason' THEN 1
END
)

我不知道在 THEN 关键字后要写什么。我应该写 1 true 1 AS BIT 还是其他什么?

4 个答案:

答案 0 :(得分:16)

Sql server没有boolean数据类型 相反,它具有bit数据类型,其中可能的值为01
因此,要回答您的问题,您应使用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' )