Soy un novato en lo que respecta a la sintaxis SQL.¿Cómo combino 2 declaraciones seleccionadas en una?
Tengo una tabla con una gran cantidad de filas y columnas de curso: P Digamos que tiene este aspecto:
AAA BBB CCC DDD
-----------------------
Row1 | 1 A D X
Row2 | 2 B C X
Row3 | 3 C D Z
Ahora quiero crear una instrucción de selección avanzada que me da este (pseudo SQLish combinado aquí):
select 'Test1', * from TABLE Where CCC='D' AND DDD='X'
select 'Test2', * from TABLE Where CCC<>'D' AND DDD='X'
La salida sería:
Test1, 1, A, D, X
Test2, 2, B, C, X
¿Cómo combinaría esas dos declaraciones seleccionadas en una sola declaración selecta?
¿Funcionaría si compilé el SQL como a continuación (porque mi propia instrucción SQL contiene una instrucción exists)? Solo quiero saber cómo puedo combinar las selecciones y luego intentar aplicarlas a mi SQL algo más avanzado.
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 ...)
Mi instrucción SQL real es ésta:
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'
que me da resultado. Pero quiero combinarlo con una copia de esta declaración de selección con un AND agregado al final y el campo 'Estado' se cambiaría con una cadena como '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 que es una pregunta muy bien hecha –