2016-12-06 61 views
0

当输出中没有行时,需要在列中添加/显示虚拟数据。将虚拟数据添加到SQL Server中的列中

例如:我写了一个有时会返回数据的查询。但如果没有数据,我想显示其中一列为“无数据可用”。

这里是我使用的初始查询:

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

“没有数据”,你的意思是如果字段“CaseNumber”是NULL? – ggradnig

+0

适合我。它是如何“不起作用”的 - 你是否得到一个错误? – finjo

+0

是的,如果根本没有数据 – Steve

回答

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 
+0

这不起作用。显示空输出 – Steve

+0

@Steve您需要解释*空输出*。如果可能的话,样本数据和预期结果你的问题导致这么多的猜测 –

+0

例如:select CaseNumber,[Description] from table1其中Name ='Steve'以CaseNumber返回输出:1234描述:Hello Steve现在如果没有名称为“Steve”的数据,我尝试显示:CaseNumber:NULL描述:“无数据可用” – Steve

1

你试过ISNULL功能?

SELECT 
    CaseNumber, 
    [Description] = ISNULL([Description], 'No data available') 
FROM table1