SQL Server 2005如何使用联合语法?

时间:2019-06-22 17:33:20

标签: sql sql-server-2005

我有这个查询

ffmpeg [options] -i ../1hourjob/videncode/sound10s.avi ../1hourjob/videncode/sound10s_cbr.mp4
ffmpeg [options] -i ../1hourjob/videncode/t003.avi ../1hourjob/videncode/t003_cbr.mp4
ffmpeg [options] -i ../ffmpeg/Masha.avi ../ffmpeg/Masha_cbr.mp4
ffmpeg [options] -i ../ffmpeg/window.avi ../ffmpeg/window_cbr.mp4

可以,但是当我尝试这样做时,它会失败

select c.RequestedByEmployeeID 
from Company c with (NOLOCK)

出现此错误:

  

第107层,州2,第44行,Msg 107
  列前缀“ c”与查询中使用的表名或别名不匹配。

     

第107层,州2,第44行,Msg 107
  列前缀“ c”与查询中使用的表名或别名不匹配。

我该如何解决?

谢谢

1 个答案:

答案 0 :(得分:1)

请不要使用别名并重复FROM子句:

select c.CompanyId, c.RequestedByEmployeeID as ResponsibleLawyerID
from Company c
union
select c.CompanyId, c.RequestedByEmployeeID as ResponsibleLawyerID
from Company c
order by CompanyID;

请注意,您需要选择该列。如果您不想选择该列,但要对其进行排序,则一个解决方案是子查询。您的查询基本上是荒谬的(选择同一列),因此添加公司似乎很合理。

order by引用union的结果,而不是特定的子查询。因此,别名是不合适的。

使用union意味着您不希望重复项,因此数据库会因删除重复项而导致性能下降。如果您不在乎,请使用union all