SQL Serverでこのようなクエリを作成するにはどうすればよいですか?
SELECT id, (id in(2,3,4) ) as idIs234 from Messageset
次のような結果が欲しい
id idIs234
-----------
1 false
2 true
3 true
4 true
5 false
6 false
このコードは機能しませんが、私が知らない代替手段があることを願っています。
SQL Serverでこのようなクエリを作成するにはどうすればよいですか?
SELECT id, (id in(2,3,4) ) as idIs234 from Messageset
次のような結果が欲しい
id idIs234
-----------
1 false
2 true
3 true
4 true
5 false
6 false
このコードは機能しませんが、私が知らない代替手段があることを願っています。
クエリ:
SELECT
id,
CASE WHEN id in(2,3,4)
THEN 'TRUE'
ELSE 'FALSE'
END AS ids
FROM Messageset
結果:
| ID | IDS |
--------------
| 1 | FALSE |
| 2 | TRUE |
| 3 | TRUE |
| 4 | TRUE |
| 5 | FALSE |
| 6 | FALSE |
CASE
次のステートメントを使用できます。
select id,
case when id in (2,3,4) then 'true' else 'false' end result
from Messageset
SQL FiddlewithDemoを参照してください
結果:
| ID | RESULT |
---------------
| 1 | false |
| 2 | true |
| 3 | true |
| 4 | true |
| 5 | false |
| 6 | false |
他のソリューションには、ハードコーディングされたチェックがあり2, 3 or 4
ます。私は、あなたが短いリストを持っていると仮定してNULL
います..LEFT OUTER JOIN
-- Setup the subquery / sub table.
-- In this case, it's a variable table.
DECLARE @TempData TABLE (Id INTEGER PRIMARY KEY NOT NULL)
INSERT INTO @TempData VALUES (2)
INSERT INTO @TempData VALUES (3)
INSERT INTO @TempData VALUES (4)
-- Outer join the two tables. If there's no join, then the second table
-- will be NULL.
SELECT a.Id AS Id,
CASE WHEN b.Id IS NULL THEN 'False'
ELSE 'True' END
AS Idls234
FROM [dbo].[Messageset] a
LEFT OUTER JOIN @TempData b ON a.Id = b.Id
hvdのヘルプにより修正されました。
使用しているデータベースサーバーについて言及していません。それを行う標準的な方法はありません。そのため、次のように を使用して、MySQL でそれを行う方法を説明しますIF function
。
SELECT id, IF(id IN ( 2, 3, 4 ) , 'true', 'false' ) AS idIs234
FROM Messageset
今いいよ
SELECT id,
case when id in(2,3,4) then 'true'
else 'false'
end idIs234 from Messageset