提问人:Oxagarh 提问时间:1/14/2023 最后编辑:Oxagarh 更新时间:1/17/2023 访问量:52
SQL 多部分标识符不能在 SELECT 中绑定
SQL multi-part identifier can't be bound in SELECT
问:
是否可以使用其他表中的列来添加案例,而不是在“开始”部分中的第一个列?
我不能在SELECT部分使用C.code或Y.anything之类的东西:
SELECT
fromTableA, fromTableA, fromTableA,
CASE
WHEN fromTableA = anyValue THEN 'is_ok'
WHEN B.fromTableB = anyValue THEN 'couldnt.be.bound'
WHEN fromTableB = anyValue THEN 'invalid.column.name'
END AS X
FROM
(SELECT fromTableA,
SUM(fromTableA),
CASE WHEN A.fromTableA = 'anything' THEN 'still ok'
WHEN C.fromTableC = 'allowed' THEN 'no problem'
FROM tableA A
JOIN tableB B ON A.id = B.id
JOIN tableC C ON C.id = B.id
Having SUM(fromTableA) > 0
) AS Y
编辑:我需要的是使用外部选择中的表 B 或 C 中的列(我只是无法删除内部选择,因为我会丢失内部选择中的情况和聚合操作)。
答:
2赞
Stu
1/14/2023
#1
以下应该是您所需要的,此处的派生表无法完成任何操作。
select A.Cols...,
case
when A.col1 = anyValue then 'is_ok'
when B.Col1 = anyValue then 'couldnt.be.bound'
when B.Col2 = anyValue then 'invalid.column.name'
end as X
from tableA A
join tableB B on A.id = B.id
join tableC C on C.id = B.id;
评论
from
from
C.ShoeSize as SomethingIReallyNeedFromTheTableDesignatedByTheTableAliasC
select