将伪数据添加到SQL Server中的列

时间:2016-12-06 16:30:46

标签: sql-server

当输出中没有行时,我需要在列中添加/显示虚拟数据。

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 

它不起作用。请帮忙。

由于

2 个答案:

答案 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