当谈到SQL语法时,我是一个noob。如何将2个select语句合并为一个?
我有一个表,有很多场的行和列:P 可以说,它看起来像这样:
AAA BBB CCC DDD
-----------------------
Row1 | 1 A D X
Row2 | 2 B C X
Row3 | 3 C D Z
现在我想建立一个先进的select语句,让我这个组合(伪SQLish这里):
select 'Test1', * from TABLE Where CCC='D' AND DDD='X'
select 'Test2', * from TABLE Where CCC<>'D' AND DDD='X'
输出将是:
Test1, 1, A, D, X
Test2, 2, B, C, X
如何将这两个select语句合并成一个很好的select语句?
它会工作,如果我像下面复杂的SQL(因为我自己的SQL语句包含一个存在的声明)?我只想知道如何组合选择,然后尝试将其应用于我的更高级的SQL。
select 'Test1', * from TABLE Where CCC='D' AND DDD='X' AND exists(select ...)
select 'Test2', * from TABLE Where CCC<>'D' AND DDD='X' AND exists(select ...)
我真正的SQL语句是这个:
select Status, * from WorkItems t1
where exists (select 1 from workitems t2 where t1.TextField01=t2.TextField01 AND (BoolField05=1))
AND TimeStamp=(select max(t2.TimeStamp) from workitems t2 where t2.TextField01=t1.TextField01)
AND TimeStamp>'2009-02-12 18:00:00'
,给了我一个结果。但是我想把它和这个select语句的一个副本结合起来,并且'Status'字段会被一个字符串'DELETED'改变。
select 'DELETED', * from WorkItems t1
where exists (select 1 from workitems t2 where t1.TextField01=t2.TextField01 AND (BoolField05=1))
AND TimeStamp=(select max(t2.TimeStamp) from workitems t2 where t2.TextField01=t1.TextField01)
AND TimeStamp>'2009-02-12 18:00:00'
AND NOT (BoolField05=1)
+1这是一个非常好问的问题 – 2012-05-01 15:01:32