Cas de Déclaration Illégale Expression SQL

0

La question

Je ne comprends pas où l'erreur msg 'expression Illégale LORSQUE la clause de CAS de l'expression" vient de par l'exécution de ce fragment de code dans 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,

Si je vous écris DANS (quelques chiffres) il fonctionne très bien. Mais c'est une liste qui se compose de 50 valeurs uniques qui peuvent éventuellement changer au fil du temps.

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

La meilleure réponse

0

Ma Suggestion est que vous pouvez charger la cinquantaine de valeurs dans une autre table et vous pouvez vous joindre à la table avec la table principale

table_50 - Tableau avec les 50 valeurs uniques main_tbl - tableau 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

À partir d'un point de vue des performances, ce qui est plus efficace et vous pouvez également mettre à jour les valeurs dans la table_50 selon votre condition

2021-11-23 13:08:01

Dans d'autres langues

Cette page est dans d'autres langues

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