【发布时间】:2019-09-23 21:19:07
【问题描述】:
我有两个SELECT 语句。如果第一条语句不返回任何内容或NULL,我想运行第二条 SQL 语句。
第一个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 引入时,选择列表中只能指定一个表达式。
任何帮助将不胜感激:)
【问题讨论】:
标签: sql sql-server tsql sql-server-2016