Sql 流分析查询获取错误列名不';不存在,但它存在?
当我在ManagementStudio中运行查询时,它工作正常,但在流分析作业中,它会抛出一个错误:查询编译错误:无效列名:“afkorting”。具有此名称的列不存在 我下载了输入表以检查上传时是否出错,但该文件确实有该列名(我仔细检查了是否有大写字母、书写错误等),因此如何修复此问题 这是我的疑问:Sql 流分析查询获取错误列名不';不存在,但它存在?,sql,tsql,azure,azure-stream-analytics,Sql,Tsql,Azure,Azure Stream Analytics,当我在ManagementStudio中运行查询时,它工作正常,但在流分析作业中,它会抛出一个错误:查询编译错误:无效列名:“afkorting”。具有此名称的列不存在 我下载了输入表以检查上传时是否出错,但该文件确实有该列名(我仔细检查了是否有大写字母、书写错误等),因此如何修复此问题 这是我的疑问: ; WITH Check AS ( SELECT afkorting, * FROM Reizen RE LEFT JOIN Gegevens AP
; WITH Check AS
(
SELECT afkorting, *
FROM Reizen RE
LEFT JOIN Gegevens AP
ON RE.ID = AP.code
)
SELECT *
FROM Check CH
JOIN Model VM
ON CH.afkorting = VM.Station
WHERE VM.h_station = VM.v_station
AND DATEPART(hour, CH.MsgReportDate) = VM.start_uur
AND (DATEPART(minute, CH.MsgReportDate) BETWEEN VM.start_minuut AND VM.eind_minuut)
AND DATEPART(weekday, CH.MsgReportDate) = VM.weekdag
希望有人能帮助我
*问题解决:您需要提供所有的列名,所以不要选择*而是选择column1、column2并使用表中给定的前缀,在我的例子中:AP.column1、RE.column2等*只需总结上面的所有注释就可以解决问题,我用
对流查询语言元素进行了一些测试,选择&。这是我对这个问题的结果列表
如果不使用JOIN
,则在with
范围中使用带有符号*
的列名在ASA上执行是正确的
使用JOIN
,需要列出所有不带符号的列名*
来执行。原因似乎是为了避免与列名冲突产生歧义
您需要提供所有列名,因此
SELECT*但选择column1、column2
并使用表中给定的前缀,
例如
就我而言:
AP.column1, RE.column2 etc
您是否尝试过显式指定列而不是使用*?感谢提示,它在“afkorting”列上没有给出错误,但在第一个给定列上确实给出了相同的错误,当我删除该列时,它在现在首先给出的列上给出了相同的错误?!我猜这是一个bug?我认为他们不支持流分析中的Check
的。你是说cte?我缩短了cte的真实姓名以进行核对。但是,如果您不使用“名称”as进行cte as,那么如何在流分析中进行cte?问题已解决!需要写出CTE中的所有列名并使用前缀