|
Оператор Case when then else
|
|||
---|---|---|---|
#18+
Добрый день, ребята. Подскажите мне, буду благодарен. У меня есть таблица restr_type restr_type RF1U RF1U RF2J;RF1J RF3J;RS2G;RF1U RF1U RF1U RF2U;RF1U RF1U RF1U RF4U;RF3U;RF2U;RF1U RF1U RF1U RF1U RF1J G - Изменение срока кредитования I - Изменение суммы займа J - Изменение графика погашения L - Изменение размера ставки вознаграждения N - Отмена/снижение/изменение порядка уплаты комиссий/пеней/штрафов Q - Изменение порядка погашения U - Иное Мне нужно разделить эти значение(G,I,J,L,N,Q,U) на отдельные столбцы как column.name(restr_type), Вот мой код, я написал но что то неверно: WITH MODIFICATION AS ( SELECT s.restr_type, period_report CASE WHEN (CASE WHEN s.restr_type = 'G' THEN 'Изменение срока кредитования' ELSE null END) THEN 'modif_type_G' WHEN (CASE WHEN s.restr_type = 'I' THEN 'Изменение суммы займа' ELSE null END) THEN 'modif_type_I' WHEN (CASE WHEN s.restr_type = 'J' THEN 'Изменение графика погашения' ELSE null END) THEN 'modif_type_J' WHEN (CASE WHEN s.restr_type = 'L' THEN 'Изменение размера ставки вознаграждения' ELSE null END) THEN 'modif_type_L' WHEN (CASE WHEN s.restr_type = 'N' THEN 'Отмена/снижение/изменение порядка уплаты комиссий/пеней/штрафов' ELSE null END) THEN 'modif_type_N' WHEN (CASE WHEN s.restr_type = 'Q' THEN 'Изменение порядка погашения' ELSE null END) THEN 'modif_type_Q' WHEN (CASE WHEN s.restr_type = 'U' THEN 'Иное' ELSE null END) THEN 'modif_type_U' END AS modif, from portfolio.ssudnik WHERE s.period_report between '01.01.2018' and '01.04.2019' group by period_report ... |
|||
:
Нравится:
Не нравится:
|
|||
15.07.2019, 10:06 |
|
Оператор Case when then else
|
|||
---|---|---|---|
#18+
Angelo LagusaМне нужно разделить эти значение(G,I,J,L,N,Q,U) на отдельные столбцы как column.name(restr_type), Вот мой код, я написал но что то неверно: CASE WHEN (CASE WHEN s.restr_type = 'G' THEN 'Изменение срока кредитования' ELSE null END) THEN 'modif_type_G' WHEN (CASE WHEN s.restr_type = 'I' THEN 'Изменение суммы займа' ELSE null END) THEN 'modif_type_I' WHEN (CASE WHEN s.restr_type = 'J' THEN 'Изменение графика погашения' ELSE null END) THEN 'modif_type_J' WHEN (CASE WHEN s.restr_type = 'L' THEN 'Изменение размера ставки вознаграждения' ELSE null END) THEN 'modif_type_L' WHEN (CASE WHEN s.restr_type = 'N' THEN 'Отмена/снижение/изменение порядка уплаты комиссий/пеней/штрафов' ELSE null END) THEN 'modif_type_N' WHEN (CASE WHEN s.restr_type = 'Q' THEN 'Изменение порядка погашения' ELSE null END) THEN 'modif_type_Q' WHEN (CASE WHEN s.restr_type = 'U' THEN 'Иное' ELSE null END) THEN 'modif_type_U' END AS modif По факту это у вас одна колонка. Уберите лишний внешний case. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2019, 16:26 |
|
Оператор Case when then else
|
|||
---|---|---|---|
#18+
Megabyte, а как разделить эти значение на отдельные столбцы. Через функцию CROSSTAB? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.07.2019, 07:42 |
|
Оператор Case when then else
|
|||
---|---|---|---|
#18+
Angelo LagusaMegabyte, а как разделить эти значение на отдельные столбцы. Через функцию CROSSTAB? Намудрили, почитайте справку по синтаксису. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2019, 17:54 |
|
|
start [/forum/topic.php?fid=53&msg=39837332&tid=1995108]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 155ms |
0 / 0 |