Простой тест таблицы из одного столбца с двумя строками и использование этого запроса для выбора первого как t1, а второго как t2, не пройдены, возвращает только t1.

, когда дело доходит до синтаксиса 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)

Ответы на вопрос(8)

Ваш ответ на вопрос