У меня есть два SELECT
заявления.Я хочу запустить второй оператор SQL, если первый оператор ничего не возвращает или NULL
.
Первый оператор Select
:
SELECT
k.key_no, concat(k.key_no,'-', key_title)
FROM
dbo.ff_keyword k
LEFT JOIN
ff_fundkey f ON f.key_no = k.key_no
LEFT JOIN
ff_fundinfo fi ON fi.fund_no = f.fund_no
WHERE
f.fund_no = '1'
ORDER BY
key_no, key_title
OFFSET 1 ROWS
FETCH NEXT 1 ROWS ONLY
Второй оператор:
SELECT
k.key_no, concat(k.key_no,'-', key_title)
FROM
dbo.ff_keyword k
Я пытался использовать ISNULL
, но я думаю, что это не может быть решением.Есть ли способ сделать это в SQL Server 2016?Я не уверен, что Case When
может быть решением.
ISNULL код:
SELECT
ISNULL((SELECT k.key_no, concat(k.key_no,'-', key_title)
FROM dbo.ff_keyword k
LEFT JOIN ff_fundkey f ON f.key_no = k.key_no
LEFT JOIN ff_fundinfo fi ON fi.fund_no = f.fund_no
WHERE f.fund_no = '1'
ORDER BY key_no, key_title
OFFSET 1 ROWS
FETCH NEXT 1 ROWS ONLY),
(SELECT k.key_no, concat(k.key_no,'-', key_title)
FROM dbo.ff_keyword k))
Вот ошибка, когда я использовал ISNULL
:
Сообщение 116, Уровень 16, Состояние 1, Строка 10
В списке выбора можно указать только одно выражение, если подзапрос не введен с EXISTS.
Сообщение 116, Уровень 16, Состояние 1,Строка 12
В списке выбора можно указать только одно выражение, если подзапрос не введен в EXISTS.
Любая помощь будет принята:)