0

我是 SQLite 的新手,我想问一下是否有办法使用 SELECT 作为 CASE WHEN 的表达式?

例如

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'
4

1 回答 1

2

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

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

此外,子选择必须完全返回单个值(它不能返回超过 1 个值)。因此,如果您尝试这样做SELECT * FROM subitems ...,它将不起作用,除非表subitems中仅包含一列和单行。

于 2012-12-28T08:52:02.860 回答