[英]Error: Ambiguous column name
为什么会出现此错误?
信息209,第16级,州1,第94行
列名不明确,“新值”。
查询:
SELECT
aho2.[Control Number] AS [Control Number],
STUFF((SELECT '; ' + [Old Value] as [text()]
FROM #AuditHistoryOutput aho1
WHERE [aho1].[Control Number] = [aho2].[Control Number]
FOR XML PATH('')), 1, 1, '') [Unset Choice Value],
STUFF((SELECT '; ' + [New Value] as [text()]
FROM #AuditHistoryOutput aho2, #AuditHistoryOutput aho1
WHERE [aho1].[Control Number] = [aho2].[Control Number]
FOR XML PATH('')), 1, 1, '') [Set Choice Value]
FROM
#AuditHistoryOutput aho2
您使用aho2表别名两次将其中一个引用更改为其他内容
看起来您正在将行的字符串转换为半冒号分隔的字符串。 但是,如果您在第二个填充语句中查找,则使用表别名aho2,然后在最后一个表引用中再次使用它。 因此,这2个引用之一需要更改,否则sql-server不知道您引用的是哪个。
但是,现在看来,您在第二个select语句中还存在一个问题,即由于隐式连接语法和指定表两次而指定了交叉连接。 我的猜测是您不希望这是一种可能会得到您想要的方法(猜测),但是如果没有,您应该使用架构,示例数据和所需结果来更新您的问题,以便我们可以更有效地为您提供帮助。
SELECT
aho3.[Control Number] AS [Control Number]
,STUFF(
(SELECT '; '+[Old Value] as [text()]
FROM #AuditHistoryOutput aho1
WHERE [aho1].[Control Number] = aho3.[Control Number]
FOR XML PATH(''))
, 1, 1, '') [Unset Choice Value]
,STUFF(
(SELECT '; '+[New Value] as [text()]
FROM #AuditHistoryOutput aho2
WHERE [aho2].[Control Number] = aho3.[Control Number]
FOR XML PATH(''))
, 1, 1, '') [Set Choice Value]
FROM #AuditHistoryOutput aho3
“模棱两可的列名”表示您有两个名称相同的表,而未指定所需的表。 因此,您选择列表中的[aho1].[New Value]
或[aho2].[New Value]
代替了[New Value]
将消除此错误。 无法保证您的查询将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.