0

SQL Server でデータセットのクエリを実行し、2 つのサブクエリのいずれかに基づいて返される列の 1 つを取得する必要があります。クエリ内の別の列の値からのサブクエリの制御。私がやろうとしていることのいくつかの基本的な疑似クエリ言語:

select col1, col2, col3,
if col3 = 1
     (select count(*) from table2 where table2.col1 = table1.col1) as count1
else
     (select count(*) from table3 where table3.col1 = table1.col1) as count1
from table1

これを達成するための最良の方法は何ですか?

4

2 に答える 2

2
SELECT col1, col2, col3,
    CASE WHEN col3 = 1 THEN
        (SELECT count(*) 
        FROM table2 
         WHERE table2.col1 = table1.col1)
    ELSE
        (SELECT count(*)
        FROM table3 
        WHERE table3.col1 = table1.col1)
    END  AS count1
FROM table1
于 2013-05-16T20:38:30.247 に答える
0

SELECT変数と列を宣言する必要がありますcol3

CASE...WHENまたは、ブロックを行うこともできます。

于 2013-05-16T20:17:07.583 に答える