当输出中没有行时,我需要在列中添加/显示虚拟数据。
Ex:我写了一个有时会返回数据的查询。但如果没有数据,我想将其中一列显示为“无可用数据”。
这是我正在使用的初始查询:
select CaseNumber,[Description]
from table1
我尝试使用:
SELECT CaseNumber,
CASE
WHEN CaseNumber IS NOT NULL THEN [Description]
ELSE 'No Data Available'
END AS [Description]
FROM table1
它不起作用。请帮忙。
由于
答案 0 :(得分:1)
您是否尝试过ISNULL
功能?
SELECT
CaseNumber,
[Description] = ISNULL([Description], 'No data available')
FROM table1
答案 1 :(得分:0)
您需要IF/ELSE
阻止CASE
声明
IF EXISTS (SELECT 1
FROM table1)
SELECT CaseNumber,
[Description]
FROM table1
ELSE
SELECT Null as CaseNumber, 'No Data Available' as [Description]
考虑到当select
查询未返回任何记录时要显示一些虚拟数据
演示:
架构
CREATE TABLE table1
(
CaseNumber INT,
[Description] VARCHAR(40)
)
运行没有记录的查询
IF EXISTS (SELECT 1
FROM table1)
SELECT CaseNumber,
[Description]
FROM table1
ELSE
SELECT NULL AS CaseNumber,
'No Data Available' AS [Description]
结果:
CaseNumber Description
---------- -----------
NULL No Data Available
在您的标签中插入一些记录; e
INSERT INTO table1
VALUES (1,
'test date')
现在使用表中的记录运行查询
IF EXISTS (SELECT 1
FROM table1)
SELECT CaseNumber,
[Description]
FROM table1
ELSE
SELECT NULL AS CaseNumber,
'No Data Available' AS [Description]
结果:
CaseNumber Description
---------- -----------
1 test date