2017-01-17 8 views
4

私はブールの列を持っています。本当の、偽の値を設定するにはどうすればいいですか?ここに私のクエリは次のとおりです。SQLでブール値を設定する方法

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

私はTHEN キーワードの後に​​書くことかわかりません。 またはtrueまたは1 AS BITと書かなければなりませんか?

+0

を満たしていない場合は、とcase文がありますか? –

+3

クエリーは正しいです。CASE WHEN Name = 'Jason' THEN 1 ELSE 0 END –

+2

[MySQLにあるようなMicrosoft SQL Serverにブール型のデータ型がありますか?](http://stackoverflow.com/questions)/3138029/is-there-a-boolean-data-type-in​​-microsoft-sql-server-like-in-mysql) –

答えて

7

SQLサーバーにはbooleanデータ型がありません。
代わりに、データ型がで、可能な値は0または1です。
質問に答えるには、trueの値を示すには1falseの値を示すには0、未知の値を示すにはnullを使用する必要があります。

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

追加したクエリが正常に動作しますが、それはあなたが「FALSE」の部分の世話をするだけでなく、それ以外の場合は、あなたの列にNULLを入力しようとする必要があります。 isTrue列にはデフォルト値がありますか?

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

たときに、他の任意の条件が、それは何らかのエラーが動作するはずです

Update [mydb].[dbo].[myTable] 
SET isTrue = (CASE WHEN Name = 'Jason' 
        THEN 1 else 0 
       END) 
関連する問題