2016-12-06 3 views
0

Мне нужно добавить/отобразить фиктивные данные в столбце, если на выходе нет строк.Добавление фиктивных данных в столбец 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 

Это не работает. Пожалуйста помоги.

Благодаря

+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 

Вставка некоторых записей в вкладке; е

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

Ex: select CaseNumber, [Description] из таблицы1, где Name = 'Steve' возвращает результат как CaseNumber: 1234 Описание: Здравствуйте, Стив Теперь, если нет данных с именем «Стив», я пытаюсь для отображения: CaseNumber: NULL Описание: «Нет данных» – Steve

1

Вы пробовали ISNULL функцию?

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