IN節を使用してCASEステートメントを作成する方法はありますか?複数の値を持つCASE INステートメント
SELECT
CASE c.Number
IN ('1121231','31242323') THEN 1
IN ('234523','2342423') THEN 2
END AS Test
FROM tblClient c
IN節を使用してCASEステートメントを作成する方法はありますか?複数の値を持つCASE INステートメント
SELECT
CASE c.Number
IN ('1121231','31242323') THEN 1
IN ('234523','2342423') THEN 2
END AS Test
FROM tblClient c
はい。あなたは、「検索」フォームではなく、あなたは、いくつかの試合から同じ値を返すことができCASE
表現
SELECT CASE
WHEN c.Number IN ('1121231', '31242323') THEN 1
WHEN c.Number IN ('234523', '2342423') THEN 2
END AS Test
FROM tblClient c
の「簡易」形式を使用する必要があります。
SELECT
CASE c.Number
WHEN '1121231' THEN 1
WHEN '31242323' THEN 1
WHEN '234523' THEN 2
WHEN '2342423' THEN 2
END AS Test
FROM tblClient c
これはおそらくになりますマーティンズの提案と同じ実行計画なので、あなたがそれをどのように書きたいかの問題です。
あなたはより多くの数字を持っている場合、またはCASE
のための新しいテスト番号を追加する場合、あなたはより柔軟なアプローチを使用することができます代わりにテーブル変数のあなたは、通常のテーブルを使用することができ、また
DECLARE @Numbers TABLE
(
Number VARCHAR(50) PRIMARY KEY
,Class TINYINT NOT NULL
);
INSERT @Numbers
VALUES ('1121231',1);
INSERT @Numbers
VALUES ('31242323',1);
INSERT @Numbers
VALUES ('234523',2);
INSERT @Numbers
VALUES ('2342423',2);
SELECT c.*, n.Class
FROM tblClient c
LEFT OUTER JOIN @Numbers n ON c.Number = n.Number;
を。
問題は、 'in'ステートメントを使用していないので、実際に質問に答えていないことです。 –
@ t-clausen.dk:質問に正確に答えたい場合は、唯一可能な答えは "いいえ"それはあまり建設的ではありません。 – Guffa
答えは "いいえ"ですか?私はいつも 'IN 'で' CASE'ステートメントを書いています...マーティンスミスもそうですね。 –