Ich bin ein Anfänger, wenn es um SQL-Syntax geht.Wie kombiniere ich 2 Select-Anweisungen zu einer?
Ich habe eine Tabelle mit vielen Zeilen und Spalten natürlich: P Lets sagen, es sieht wie folgt aus:
AAA BBB CCC DDD
-----------------------
Row1 | 1 A D X
Row2 | 2 B C X
Row3 | 3 C D Z
Jetzt habe ich eine erweiterte select-Anweisung erstellen möchten, die mir diese Kombination (pseudo SQLish gibt hier):
select 'Test1', * from TABLE Where CCC='D' AND DDD='X'
select 'Test2', * from TABLE Where CCC<>'D' AND DDD='X'
Der Ausgang wäre:
Test1, 1, A, D, X
Test2, 2, B, C, X
Wie würde ich diese beiden Select-Anweisungen in einer netten Select-Anweisung kombinieren?
Würde es funktionieren, wenn ich das SQL wie unten komplizierter mache (weil meine eigene SQL-Anweisung eine exist-Anweisung enthält)? Ich möchte nur wissen, wie ich die Auswahl kombinieren kann und dann versuche, sie auf mein etwas fortgeschritteneres SQL anzuwenden.
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 ...)
Meine REAL SQL-Anweisung ist diese:
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'
was mich zu einem Resultat. Aber ich möchte es mit einer Kopie dieser Select-Anweisung mit einem hinzugefügten AND am Ende kombinieren, und das Feld 'Status' würde mit einer Zeichenfolge wie 'DELETED' geändert werden.
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 das ist eine sehr gut gestellte Frage –