我必须创建一个SQL Server 2005查询,该查询检查表中一个属性的值,并根据其值选择不同的列集。 我怎样才能做到这一点?
例如
在表'car'中,如果'type'属性的值为1和2 当type = 1时,我想执行一个包含3列的select'query1'。 当type = 2时,我想用另外4个列执行另一个select'query2'。
我该怎么做? 请帮忙。
答案 0 :(得分:1)
我认为您正在使用If语句查看存储过程。 CASE将起作用,但不能更改返回的列数。
答案 1 :(得分:-1)
SELECT
Col1 = CASE WHEN Type = 1 THEN (SELECT Null FROM T1)
ELSE (SELECT Col1 FROM T2) END
, Col2 = CASE WHEN Type = 1 THEN (SELECT Col1 FROM T1)
ELSE (SELECT Col2 FROM T2) END
, Col3 = CASE WHEN Type = 1 THEN (SELECT Col2 FROM T1)
ELSE (SELECT Col4 FROM T2) END
, Col4 = CASE WHEN Type = 1 THEN (SELECT Col3 FROM T1)
ELSE (SELECT Col4 FROM T2) END
FROM Cars
如果您向我们展示所涉及的所有表格的DDL,您可能会得到更好的答案或不同的(更好的阅读)方法。