gpt4 book ai didi

sql - case when in where 子句 Postgresql

转载 作者:行者123 更新时间:2023-11-29 13:12:45 25 4
gpt4 key购买 nike

我有这样的查询:

SELECT *  
FROM table
WHERE t1.name||t1.lastname||... ilike ANY (ARRAY['%Muller%'])
OR t1.name||t1.lastname||... ilike all (ARRAY['%Muller%'])

我想添加 CASE WHEN 所以我的查询是:

 SELECT *  
FROM table
WHERE t1.name||t1.lastname||... ilike CASE WHEN TRUE IS TRUE THEN
ANY (ARRAY['%Muller%']) ELSE all (ARRAY['%Muller%']) END

这样我就可以避免再次复制和粘贴整个字段。

最佳答案

您可以使用 LATERAL 来避免多次连接:

SELECT *  
FROM table t1, LATERAL(SELECT t1.name||t1.lastname||...) s(c)
WHERE s.c ilike ANY (ARRAY['%Muller%'])
OR s.c ilike ALL (ARRAY['%Muller%'])

关于sql - case when in where 子句 Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com