Можно ли проверить только нулевые записи в SQL? - PullRequest
3 голосов
/ 14 января 2011

Я пытаюсь помочь коллеге с особой проблемой, и она ограничена только кодом MS SQL QUERY.Цель состоит в том, чтобы вставить фиктивную запись (в окружающее объединение), ЕСЛИ никакие записи не возвращаются из запроса.

Мне трудно переходить от PL / SQL к MS SQL, и яобращение за помощью (я не особо обращаюсь, но я обращаюсь к аудитории StackOverflow).

По сути, нам нужно одно проверяемое значение из целевого оператора Select ...

Теоретически, это будет сделано так:

(other records from unions)
Union
   Select "These" as fld1, "are" as fld2, "Dummy" as fld3, "Fields" as fld4 
   where NOT (Matching Logic)
Union
   Select fld1, fld2, fld3, fld4  // Regular records exist
   From tested_table
   Where (Matching Logic)

Форсирование отдельной фиктивной записи без каких-либо условий работает.

Есть ли способ получить единственный, проверяемый результат из Select?

Не может сделать это в коде (не разрешено), но может кормить SQL

Кто-нибудь?Кто-нибудь?Bbeller

1 Ответ

2 голосов
/ 14 января 2011

Вы можете поместить unions в with, а затем включить другой союз, который возвращает null только тогда, когда большой союз пуст:

; with BigUnion as
         (
         select  *
         from    table1
         union all
         select  *
         from    table2
         )
select   *
from     BigUnion
union all
select   null
where    not exists (select * from BigUnion)
...