有没有办法使用SELECT作为CASE WHEN的表达式?

时间:2012-12-27 18:51:40

标签: sqlite

我是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'

1 个答案:

答案 0 :(得分:1)

是的,你可以。您需要做的就是将您的子选项括在括号中。例如,这有效:

SELECT CASE WHEN 1 = 0 THEN (SELECT 1) ELSE (SELECT 0) END

此外,子选择必须返回完全单一的值(它不能返回多于1的值)。因此,如果您尝试SELECT * FROM subitems ...,它将无效,除非表subitems仅包含一列和单行。

相关问题