gpt4 book ai didi

sql-server - 连接派生表时获取 “No column was specified for column 1"

转载 作者:行者123 更新时间:2023-12-02 11:09:01 25 4
gpt4 key购买 nike

我正在编写一个左连接并得到一个

No column was specified for column 1" error.

我做错了什么?

LEFT JOIN 
(
SELECT CASE WHEN COUNT(*) > 1 THEN '' ELSE mycolumn END
FROM
(
SELECT code_value
FROM allocation
WHERE allocation.id='[val]'
GROUP BY code_value
) grp
GROUP BY code_value
) AS code4table
ON code4table.itemid = table1.id

如果所有值都相同,我想返回 code_value 值,否则返回 ''。我猜我还需要在我的选择查询中包含 code4table.itemid 但不知道如何。

最佳答案

除了派生表的别名 ( ALIASTABLE ) 之外,您还需要计算列的列别名 ( ALIASCOLUMN 下面):

LEFT JOIN (
SELECT CASE WHEN COUNT(*) > 1 THEN '' ELSE mycolumn END AS ALIASCOLUMN
FROM
...
) AS ALIASTABLE
ON ALIASTABLE.ALIASCOLUMN = outertable.column

就您而言ALIASCOLUMN名称应该是 itemid为了匹配外连接命名。

(因为您正在使用 case/when 派生一个新列,即使您在 mycolumn 中有一个命名列 ELSE ,Sql 也不会默认派生列名称为此)。如果这样做有意义,您可以保留相同的列名称 ( mycolumn ) 并更改最终的 ON来匹配。

关于sql-server - 连接派生表时获取 “No column was specified for column 1",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21360860/

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