SQL, если оператор select не возвращает строки, а затем выполняет альтернативный оператор select

В принципе, какой syntex позволил бы мне получить название?

If (select statement 1) returns 0 rows THEN (select statement 2) else (select statement 3)

Итак, sql возвращает результаты из двух или трех операторов: Я искал способ сделать это, но ничего, что я нашел до сих пор, похоже, точно соответствует требованиям if.

Ответ 1

IF EXISTS (SELECT field FROM table)
BEGIN
SELECT field FROM table2
END
ELSE
BEGIN
SELECT field FROM table3
END

Ответ 2

Извините за отсутствие обратной связи. Кто-то еще в офисе проявил интерес и придумал следующее:

select * from (
        select *
              , (SELECT Count(*) 
                   FROM users 
                  WHERE version_replace = 59 AND moderated = 1) AS Counter 
          FROM users WHERE version_replace = 59 AND moderated in (0,1)
     ) AS y
where Counter = 0 and Moderated = 0
   or Counter > 0 and Moderated = 1
ORDER By ID DESC

Что делает то, что мне нужно.

Ответ 3

Здесь вы идете...

IF ((select count(*) from table1)= 0)
BEGIN
Select * from table2
END
ELSE
BEGIN
SELECT * from table3
END