如何解决带有联合和顺序的SELECT查询进入新的临时表不起作用
我编写了一个T-SQL查询来从许多表中收集一些数据,并使用选择联合查询将行分为三部分。执行查询时出错。我已附上查询,请指导我纠正错误。
SELECT *
INTO #tmpFerdeen
FROM
(SELECT
(CASE WHEN sc <> '0000' THEN sln END) AS t,(CASE WHEN sc <> '0000' THEN crid END) AS crrid,CASE Header
WHEN 'H' THEN 1
WHEN 'S' THEN 2
WHEN 'T' THEN 3
ELSE 0
END O,CASE
WHEN sc <> '0000' THEN Header
END,CASE
WHEN sc <> '0000' THEN Header+'|'+st + '|'+convert(varchar,pid) + '|' + convert(varchar,cid) + '|' +convert(varchar,cenddate )
END AS RestOfData
FROM
#tempsddd
UNION ALL
SELECT
sln t,crid crrid,CASE Details
WHEN 'H' THEN 1
WHEN 'S' THEN 2
WHEN 'T' THEN 3
ELSE 0
END,Details,Details + '|' + ISNULL(CONVERT(varchar,sln),'') + '|' + '|' + '|' + '|'
+ ISNULL(CONVERT(varchar,ah),'') + '|'
+ ISNULL(sfne,'') + '|'
+ ISNULL(smne,'') + '|'
+ ISNULL(slne,'')
FROM
#tempsddd
UNION ALL
SELECT
(CASE WHEN sc <> '0000' THEN sln END) AS t,CASE Footer
WHEN 'H' THEN 1
WHEN 'S' THEN 2
WHEN 'T' THEN 3
ELSE 0
END,CASE WHEN sc <> '0000' THEN Footer END,CASE WHEN sc <> '0000' THEN Footer + '|' + sc END
FROM
#tempsddd
ORDER BY
crrid,CASE Header
WHEN 'H' THEN 1
WHEN 'S' THEN 2
WHEN 'T' THEN 3
ELSE 0
END)
请指导我这样做。
解决方法
由于“ Order by”语句,我认为这是不正确的语法,您应该在括号中放置order by,并且还要在order by之后使用case,因此请检查情况是否正确
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。