Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вывести сообщение если Null или Not Exists / 5 сообщений из 5, страница 1 из 1
24.09.2020, 17:13
    #40002252
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести сообщение если Null или Not Exists
Вот так у меня сообщение не выводится
Код: sql
1.
2.
3.
4.
5.
SELECT        ISNULL(dbo.Department.NAME, 'No') AS NAME
FROM            dbo.Department INNER JOIN
                         dbo.Employee ON dbo.Department.id = dbo.Employee.department_id AND dbo.Employee.department_id IS NOT NULL
GROUP BY dbo.Employee.department_id, dbo.Department.NAME
HAVING        (COUNT(dbo.Employee.department_id) < 4)


Подкажите как вывести сообщение если результат Null или Not Exists без дублирования всего текста запроса типа
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
IF (EXISTS(SELECT dbo.Department.NAME AS NAME
FROM            dbo.Department INNER JOIN
                         dbo.Employee ON dbo.Department.id = dbo.Employee.department_id AND dbo.Employee.department_id IS NOT NULL
GROUP BY dbo.Employee.department_id, dbo.Department.NAME
HAVING        (COUNT(dbo.Employee.department_id) < 4)))

SELECT dbo.Department.NAME AS NAME
FROM            dbo.Department INNER JOIN
       dbo.Employee ON dbo.Department.id = dbo.Employee.department_id AND dbo.Employee.department_id IS NOT NULL
GROUP BY dbo.Employee.department_id, dbo.Department.NAME
HAVING        (COUNT(dbo.Employee.department_id) < 4)
ELSE
Print 'No'
...
Рейтинг: 0 / 0
24.09.2020, 17:16
    #40002255
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести сообщение если Null или Not Exists
Странная задача.

Ну вот если вы прям никак не хотите пустой рекордсет, если ничего не выбралось, то никак.
Иначе просто проверить @@rowcount и вывести 'No'

UPD: ну или во времянку скинуть сначала результаты запроса. Но это тоже имеет свои недостатки.
...
Рейтинг: 0 / 0
24.09.2020, 17:29
    #40002266
Sybex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести сообщение если Null или Not Exists
IMHO, это костыль! Но можно к гарантированно существующей единичной записи через outer apply присоединить результат вашего запроса.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT ISNULL([T].NAME, 'No') AS NAME
  FROM (SELECT 1 AS [c]) [Tmp]
       OUTER APPLY (
                        SELECT        dbo.Department.NAME
                        FROM            dbo.Department INNER JOIN
                                                 dbo.Employee ON dbo.Department.id = dbo.Employee.department_id AND dbo.Employee.department_id IS NOT NULL
                        GROUP BY dbo.Employee.department_id, dbo.Department.NAME
                        HAVING        (COUNT(dbo.Employee.department_id) < 4)
                   ) [T]
...
Рейтинг: 0 / 0
24.09.2020, 18:43
    #40002303
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести сообщение если Null или Not Exists
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with t as
(
 select 2 as n, 'empty' as NAME

 union all

 SELECT        1, ISNULL(dbo.Department.NAME, 'No') AS NAME
 FROM            dbo.Department INNER JOIN
                         dbo.Employee ON dbo.Department.id = dbo.Employee.department_id AND dbo.Employee.department_id IS NOT NULL
 GROUP BY dbo.Employee.department_id, dbo.Department.NAME
 HAVING        (COUNT(dbo.Employee.department_id) < 4) 
)
select top (1) with ties
 NAME
from
 t
order by
 n;
...
Рейтинг: 0 / 0
24.09.2020, 21:32
    #40002335
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вывести сообщение если Null или Not Exists
Всем спасибо! Думал может есть проще пути, а оказалось - нетривиальная задача :-0
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вывести сообщение если Null или Not Exists / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]