gpt4 book ai didi

php - 在查询中使用多个条件时出错

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

我正在使用 PostgreSQL 8.4.4。我想根据多个条件从表中获取记录,

1) 检查记录是否存在

2) 如果存在,则 -> 如果 type_id 为 1,则选择名称如果 type_id 为 2,则选择名称、缩写

3) 如果记录不存在则打印为'Missing'

下面是相同的查询

select 
case
when exists (select NAME || ' ' || ABBREVIATION from CONTACTS_COMPANY where id = 15)
then ( select
case
when type_id = '1'
then (select UPPER(NAME) from CONTACTS_COMPANY where id = 15)
when type_id = '2'
then (select UPPER(NAME) || ' ' || UPPER(ABBREVIATION) from CONTACTS_COMPANY where id = 15)
end
)
else UPPER('MISSING')
end

当触发上面的查询时,我得到错误

SQL error:

ERROR: column "type_id" does not exist

LINE 7: when type_id = '1'

我不明白究竟是什么导致了错误。任何帮助,将不胜感激。提前致谢!

最佳答案

假设“type_id”确实存在(您可能确定了这一点……?),我会说查询的结构不正确。您最外层的选择遗漏了“来自” - 声明。此外,您的内心陈述不正确。它应该看起来像这样:

select 
case
when exists
(select ('NAME' || ' ' || 'ABBREVIATION')
from "CONTACTS_COMPANY")
then (
case
when type_id = '1'
then UPPER("NAME")
when type_id = '2'
then UPPER("NAME") || ' ' || UPPER("ABBREVIATION")
end
)

else UPPER('MISSING')
end
from "CONTACTS_COMPANY"
WHERE id='15'

这个我没测试过 ,不过大体结构应该没问题。我希望能正确理解你想要做什么。请发表评论,如果不是这样:)

更新工作解决方案的代码

关于php - 在查询中使用多个条件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300356/

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