0

我需要在 SQL Server 中查询数据集,并根据两个子查询之一获得其中一个返回列。哪个子查询的控制来自查询中另一列的值。我正在尝试做的一些基本的伪查询语言:

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

您应该在其中声明一个变量和SELECTcol3

或者你可以做一个CASE...WHEN块。

于 2013-05-16T20:17:07.583 回答