我有一个查询:
SELECT o.version, o.text, o.id
case when language=1
then o.language else [SKIP LANGUAGE COLUMN] end as language
FROM books AS o
如果language
是否可以跳过列language!=1
?
所以如果language = 1我想得到:
版本|文本| id |语言
否则: 版本| textt | id | (无语言列)
答案 0 :(得分:2)
“ postgres出现时,是否可以跳过情况?”
如果用“跳过”表示查询项目在结果集中的列数不同,例如@a_horse_with_no_name注释,否。
您可以在else表达式中分配空值(或其他值)。
case when language=1 then o.language else null end as language
或者如果需要空值,则将其他内容排除在外
case when language=1 then o.language end as language
如果必须投影不同数量的列,则需要执行两个单独的查询。