Я нуб, когда дело доходит до синтаксиса SQL.
У меня есть таблица с множеством строк и столбцов, конечно: P
Допустим, это выглядит так:
AAA BBB CCC DDD
-----------------------
Row1 | 1 A D X
Row2 | 2 B C X
Row3 | 3 C D Z
Теперь я хочу создать расширенный оператор выбора, который дает мне это вместе (псевдо 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 с добавленным AND в конце, и поле «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)