powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / конструкция CASE WHEN THEN. получение значения из подвыборки
11 сообщений из 11, страница 1 из 1
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995544
toemik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую старших коллег. Запутался в такой штуке.
Необходимо в конструкции CASE подставлять соответствующие значения
в зависимости от состояния поля load_date. Проблема в том что второе when присваивает
значение полю mean_v на основании расчета среднего получаемого mean_v по подвыборке.
Собственно я понимаю как реализовать получение значения и присваивания для каждой строки.
смотрел в сторону алис но с
Код: plsql
1.
with t () as () 

ругается на ошибки. С какой стороны подойти?

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
UPDATE public.table 
set mean_v =
            CASE 
                WHEN table.load_date IS NOT NULL 
                    THEN 
                    1

                WHEN table.load_date IS NULL 
                    THEN
                    --whis t as(select id, customer, code, mean_v from public.data)              
                    --хочу присваивать это ср. значение от подмножества, где:
          --select AVG(t.mean_v) from t ,  public.table 
                    --where t.customer = table.customer
                    --and t.code = table.code
                    
             END
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995553
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toemik,

А CTE вам тут зачем?

Код: sql
1.
2.
3.
4.
5.
6.
7.
select
    case 
        when 1 = 1 then
            (select avg(s) from (select 1 s union all select 3 s) t)
        else
            0
    end
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995587
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
toemik,

А CTE вам тут зачем?

Код: sql
1.
2.
3.
4.
5.
6.
7.
select
    case 
        when 1 = 1 then
            (select avg(s) from (select 1 s union all select 3 s) t)
        else
            0
    end


Бывают случаи, когда 1<>1 ???!
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995589
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

Привычка писать явный else в конструкции case, не более того.
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995592
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env
iap,

Привычка писать явный else в конструкции case, не более того.
А зачем в вашем примере CASE?
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995598
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

Так ТС же и спрашивает, как подзапрос в case впихнуть
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995601
toemik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

Спасибо, то есть я определяю во втором THEN
значение получаемое в еще одном локальном CASE?
(select 1 s union all select 3 s) - не очень понимаю что
здесь select 1 select 3. Ожидается объединение того что есть
с подвыборкой с условием where. Это оно и есть?
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995604
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toemik,

Это просто пример.
Вам пытаются показать, что CTE не нужен. Просто в THEN делается подзапрос, который возвращает 1 строку с 1-м полем, в котором целое число.
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995606
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracs
в котором целое число.
Или не целое... Но тогда в первом THEN - 1.0
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39995669
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toemik,

toemik
не очень понимаю что
здесь select 1 select 3

Просто в качестве примера для подзапроса, чтобы avg не по одному значению было.

toemik
Это оно и есть?

Это просто пример подзапроса в case без использования cte.
...
Рейтинг: 0 / 0
конструкция CASE WHEN THEN. получение значения из подвыборки
    #39996095
toemik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
env,

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


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