powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использоване CTE и условия IF
11 сообщений из 11, страница 1 из 1
Использоване CTE и условия IF
    #38472786
Bryk_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
- MSQL 2008
- Среда SSMS

Здраствуйте,
В хр. процедуре пишу код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH TTT AS
(
sql-запрос
)

IF 1=1
SELECT * FROM TTT

Получаю ошибку:
Сообщение 156, уровень 15, состояние 1, строка 43
Неправильный синтаксис около ключевого слова "IF".

А так:
Код: sql
1.
2.
3.
4.
5.
6.
WITH TTT AS
(
sql-запрос
)

SELECT * FROM TTT

данные выводятся

Подскажите, можно ли использовать логические условия типа IF вместе с CTE?
И как мне быть, если в зависимости от разных условий мне нужно вывести разный набор данных из табличного выражения?
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472801
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нельзя.
Особенно это досадно, если надо написать IF EXISTS() для, например, рекурсивного CTE.
Но CTE - это просто часть одного-единственного запроса, живущее только до конца
выполнения этого запроса.
Так что "разный набор данных" возможен только в виде INION [ALL] и с соответствующими
условиями в WHERE
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472803
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатался - не INION, а UNION, конечно же
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472813
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ как мне быть, если в зависимости от разных условий мне нужно вывести разный набор данных из табличного выражения?

Убрать CTE и положить результат (sql-запрос) в табличную переменную\временную таблицу.
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472877
Bryk_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем,
очень досадно... ладно, буду что-нибудь придумывать
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472879
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bryk_AlienВ хр. процедуре пишу код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH TTT AS
(
sql-запрос
)

IF 1=1
SELECT * FROM TTT

Получаю ошибку:
так а чем не устраивает такое?
Код: sql
1.
2.
3.
4.
5.
WITH TTT AS
(
sql-запрос
)
SELECT * FROM TTT WHERE 1 = 1
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472888
sdet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShakillBryk_AlienВ хр. процедуре пишу код:
Код: sql
1.
2.
3.
4.
5.
6.
7.
WITH TTT AS
(
sql-запрос
)

IF 1=1
SELECT * FROM TTT

Получаю ошибку:
так а чем не устраивает такое?
Код: sql
1.
2.
3.
4.
5.
WITH TTT AS
(
sql-запрос
)
SELECT * FROM TTT WHERE 1 = 1


Условие может быть вне таблицы TTT
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472893
Bryk_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shakill,

Да там я "догадался" написать универсальный запрос, который выводит данные для трёх состояний - с различной группировкой, количеством и названием полей. для нескольких довольно различных по устройству отчётов...
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472900
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bryk_AlienДа там я "догадался" написать универсальный запрос, который выводит данные для трёх состояний - с различной группировкой, количеством и названием полей. для нескольких довольно различных по устройству отчётов...
А поместить cte в представление ?
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472911
sdet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GloryBryk_AlienДа там я "догадался" написать универсальный запрос, который выводит данные для трёх состояний - с различной группировкой, количеством и названием полей. для нескольких довольно различных по устройству отчётов...
А поместить cte в представление ?
Да там с параметрами наверное, лучше table valued function
...
Рейтинг: 0 / 0
Использоване CTE и условия IF
    #38472930
Bryk_Alien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryА поместить cte в представление ?Кстати да, ка вариант... Запрос в СТЕ - без параметров, просто, цук, много кода.
Спасибо! +)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использоване CTE и условия IF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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