powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Declare и With
21 сообщений из 21, страница 1 из 1
Declare и With
    #40077157
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем.
Постоянно в своих запросах использую промежуточные таблицы через WITH. Иногда количество повторяющихся значений высокое, и их нужно изменять.

Вопрос в том, что как бы я не пытался, у меня не выходит использовать declare/set вместе c WITH.

Может есть альтернативное решение. Для примера пусть будет запрос

with newtable as (Select
lvl,
tovar
from table1
where lvl = 2
union all
lvl,
tovar
from table2
where lvl = 2)
Select * from newtable


Как ввести в первые две таблицы declare, что бы менять значения lvl сразу для всех

П.С. Решение в стиле промежуточной таблицы и inner join я знаю)
...
Рейтинг: 0 / 0
Declare и With
    #40077170
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

WITH - это просто часть SELECT, INSERT, DELETE, UPDATE или MERGE.
В этих командах есть место DECLARE или SET? Нет.
Так что используйте их перед WITH (и обязательно завершайте точкой с запятой!)
...
Рейтинг: 0 / 0
Declare и With
    #40077173
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare @lvl int = 2;

with newtable as (Select
lvl,
tovar
from table1
where lvl = @lvl
union all
lvl,
tovar
from table2
where lvl = @lvl)
Select * from newtable;
...
Рейтинг: 0 / 0
Declare и With
    #40077226
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

Спасибо и всем кто отписался, про ";" и не подумал(

Не могли бы вы мне подсказать, как такой деклер ввести в рекурсию?
...
Рейтинг: 0 / 0
Declare и With
    #40077228
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli
Владислав Колосов,

Спасибо и всем кто отписался, про ";" и не подумал(

Не могли бы вы мне подсказать, как такой деклер ввести в рекурсию?


Что вы хотите сделать русским словами?

Вести деклар в запрос нельзя.
...
Рейтинг: 0 / 0
Declare и With
    #40077233
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кесарь,
хотелось бы вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare @lvl INT  = 50;

with cte AS(
SELECT 
1 AS lvl

UNION ALL 
SELECT lvl+1
FROM cte
WHERE LVL < @lvl)

SELECT *
FROM cte
...
Рейтинг: 0 / 0
Declare и With
    #40077234
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli
Кесарь,
хотелось бы вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare @lvl INT  = 50;

with cte AS(
SELECT 
1 AS lvl

UNION ALL 
SELECT lvl+1
FROM cte
WHERE LVL < @lvl)

SELECT *
FROM cte
ээээ, ... и что останавливает ?
...
Рейтинг: 0 / 0
Declare и With
    #40077239
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,

пишет, что необходимо объявить скалярную переменную @lvl
...
Рейтинг: 0 / 0
Declare и With
    #40077248
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вы где это пытаетесь выполнять?
...
Рейтинг: 0 / 0
Declare и With
    #40077249
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli
court,

пишет, что необходимо объявить скалярную переменную @lvl
ты её объявил

Кто пишет ? Где пишет ? Где ты это выполняешь ?
...
Рейтинг: 0 / 0
Declare и With
    #40077250
Кесарь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli
court,

пишет, что необходимо объявить скалярную переменную @lvl


Очень странно. Вы в SSMS это делаете? Представленный кусок кода выглядит вполне рабочим.
...
Рейтинг: 0 / 0
Declare и With
    #40077308
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кесарь
Bereteli
пишет, что необходимо объявить скалярную переменную @lvl

Очень странно. Вы в SSMS это делаете? Представленный кусок кода выглядит вполне рабочим.
Не то что выглядит, а даже выполняется!
...
Рейтинг: 0 / 0
Declare и With
    #40077318
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

имо ТС не ведает, что творит.
...
Рейтинг: 0 / 0
Declare и With
    #40077601
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Heide Sql пишу этот код и выдает ошибку такую.
...
Рейтинг: 0 / 0
Declare и With
    #40077604
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

вы уверены что данный кусок кода вы исполняете в своем IDE применительно к серверу именно MSSQL (Microsoft SQL Server) а не MySQL?

Это разные СУБД если что, но синтаксис объявления переменных у них разный.
А ваша програмулина судя по описанию умеет конектится в обе СУБД.

на всякий случай покажите вывод
Код: sql
1.
SELECT @@VERSION;
...
Рейтинг: 0 / 0
Declare и With
    #40077611
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

Да это точно SQL Server, рекурсия работает, но без деклера(
...
Рейтинг: 0 / 0
Declare и With
    #40077615
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli
Heide Sql

Задайте этот вопрос в поддержку этого продукта.
...
Рейтинг: 0 / 0
Declare и With
    #40077650
Adony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В хейди, скорее всего стоит режим выполнения скрипта по одному стэйтменту. Поменяйте на пакетную отправку.
...
Рейтинг: 0 / 0
Declare и With
    #40077699
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adony,

прочитал описание Heide, что там есть такая возможность, но так и не смог найти где это включается. Может есть возможность подсказать, буду благодарен
...
Рейтинг: 0 / 0
Declare и With
    #40077702
Adony
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вкладка Запрос-посылать пакет за один раз
...
Рейтинг: 0 / 0
Declare и With
    #40077829
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Adony,

Спасибо большое. В моем случаи я нашел это на кнопке пуска запроса, вдруг кому пригодится
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Declare и With
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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