Обработка T-SQL Нет результатов - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь получить информацию о серверах в нашей среде, и некоторые серверы, для которых мне нужно получить информацию, не существуют. Например, ServerD, ServerF, ServerJ и ServerN не находятся в таблице, которую я запрашиваю.

SELECT Server, Active, Location
    FROM Repository.dbo.Servers
    WHERE Server IN (
    'ServerA',
    'ServerB',
    'ServerC',
    'ServerD',
    'ServerE',
    'ServerF',
    'ServerG',
    'ServerH',
    'ServerI',
    'ServerJ',
    'ServerK',
    'ServerL',
    'ServerM',
    'ServerN',
    'ServerO'
    )
    ORDER BY ServerName

Это результаты этого запроса, но я хотел бы получить какое-то значение для несуществующих серверов (ServerD, ServerF, ServerJ и ServerN), например NULL и т. Д.

ServerA N   Springfield, IL
ServerB Y   Cleveland, OH
ServerC Y   Springfield, IL
ServerE Y   Cleveland, OH
ServerG Y   Cleveland, OH
ServerH Y   Memphis, TN
ServerI Y   Springfield, IL
ServerK N   Cleveland, OH
ServerL Y   Cleveland, OH
ServerM Y   Springfield, IL
ServerO Y   Memphis, TN

Как это можно сделать в T-SQL? Например, я бы хотел, чтобы что-то было возвращено, похожее на это:

    ServerA N   Springfield, IL
    ServerB Y   Cleveland, OH
    ServerC Y   Springfield, IL
    ServerD NULL
    ServerE Y   Cleveland, OH
    ServerF NULL
    ServerG Y   Cleveland, OH
    ServerH Y   Memphis, TN
    ServerI Y   Springfield, IL
    ServerJ NULL
    ServerK N   Cleveland, OH
    ServerL Y   Cleveland, OH
    ServerM Y   Springfield, IL
    ServerN NULL
    ServerO Y   Memphis, TN

1 Ответ

0 голосов
/ 26 апреля 2018

По вашим комментариям у вас есть таблица, в которой есть все серверы. Используйте эту таблицу и оставьте соединение с таблицей серверов.

SELECT t1.Server, t2.Active, t2.Location
FROM TheTableThatHasAllServers t1
LEFT JOIN Repository.dbo.Servers t2 on t1.server = t2.server
WHERE t1.Server IN (
'ServerA',
'ServerB',
'ServerC',
'ServerD',
'ServerE',
'ServerF',
'ServerG',
'ServerH',
'ServerI',
'ServerJ',
'ServerK',
'ServerL',
'ServerM',
'ServerN',
'ServerO'
)
ORDER BY t1.ServerName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...