我是SQLite的新手,我想问一下是否有办法使用SELECT作为CASE WHEN的表达式?
e.g。
CASE WHEN item_type = 'item' THEN
SELECT * FROM items ... END AS 'col_1',
WHEN item_type = 'subitem' THEN
SELECT * FROM subitems ... END AS 'col_2'
答案 0 :(得分:1)
是的,你可以。您需要做的就是将您的子选项括在括号中。例如,这有效:
SELECT CASE WHEN 1 = 0 THEN (SELECT 1) ELSE (SELECT 0) END
此外,子选择必须返回完全单一的值(它不能返回多于1的值)。因此,如果您尝试SELECT * FROM subitems ...
,它将无效,除非表subitems
仅包含一列和单行。