Я нуб, когда дело доходит до синтаксиса 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 содержит оператор exists)? Я просто хочу знать, как я могу комбинировать выборки, а затем попытаться применить их к моему несколько более продвинутому 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 '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)