Caso Ilegal de Declaração Expressão SQL

0

Pergunta

Eu não entendo de onde a mensagem de erro "Ilegal expressão QUANDO a cláusula de expressão CASE' vem executando este trecho na Teradata SQL

CASE 
  WHEN f_ev1.PROCESS_NO IN 
    (
      SELECT
        numbers.PROCESS_NO
      FROM numbers
      WHERE 
        numbers.FLAG = 1
      GROUP BY 1 --no duplicates
    ) THEN 2
END AS Status,

Se eu escrever NO (alguns números) ele funciona muito bem. Mas é uma lista que consiste em 50 valores exclusivos que podem, eventualmente, alterar ao longo do tempo.

case sql teradata
2021-11-16 11:32:54
1

Melhor resposta

0

Minha Sugestão é que você pode carregar a cinqüenta valores de outra tabela e você pode juntar-se a tabela com a tabela principal

table_50 - Tabela com 50 valores exclusivos main_tbl - tabela Principal

insert into table_50 ( process_no ) SELECT numbers.PROCESS_NO FROM numbers WHERE numbers.FLAG = 1 GROUP BY 1 ;

Select case when b.process_no is null then 2  end as status from main_table a
left join table_50 b
on a.process_no= b.process_no

A partir de uma perspectiva de desempenho, isto é mais eficaz e você também pode atualizar os valores no table_50 como por sua exigência

2021-11-23 13:08:01

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................