2016-12-06 115 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 
相關問題