我当前查询的一部分是这个 CASE WHEN 语句:
CASE WHEN SUBSTRING(article_code,1,4) IN ('Ak42','Ales','AlHe','Artu','Behr','Crea','Digi','Egos','Emu_','Fend','Fen2','GiSt',Icon','InMa','Korg','Lin6','Li6S','MAud','MGtr','Mack','Nova','Focu','NoLa','NoLM','Relo','Tasc','TC_E','Vest','Xona','Xpre','Zoom','SndC','LtGn')
THEN 'X' ELSE 'Y' END AS lup
这不仅难以阅读/格式化,而且还有一个根本缺陷,即IN
运算符中包含的值列表不是静态的,而是动态的。由于数据库中没有这样的lookup_table,而且这不太可能改变,我想知道是否可以创建一个看起来像这样的临时表......:
交流电
- 英玛
- 雷洛
- 飞涨
- ETC..
...然后将 AC 列中的这些值用作IN
运算符的值,例如:
CASE WHEN SUBSTRING(article_code,1,4) IN (temp_table) THEN 'X' ELSE 'Y' END AS lup
甚至可以以IN
这种方式使用运算符?如果这不可能,也许还有另一种解决方案。