改变出现在结果中的列的顺序,在不改变选择顺序(Change order of columns app

2019-07-29 10:55发布

我有一个查询在那里我选择超过15分的东西,从而得到(超过)15列在我的结果。 一些我所选择的东西是大CASE语句。 当然,T-SQL显示比你列出的事物的秩序的结果SELECT语句。

有没有办法有不同的顺序,以帮助我对他们的检查显示的结果列,而不

一)重新排序它们是如何选择(因为我需要这个我想比较其他两列并排侧都必须这样做)

即不想改变: SELECT a,b,c,d,e,fSELECT f,d,a,b,c,e ,因为AF可以各自是5-10行的代码

b)在结果拖动正drop列彼此相邻,因为如果我想柱2被旁边列9和列14,并且所有三个是在结果表的末尾,则该愿意的很多拖着做。

C)知道选择什么,而不是列名的列数

我正在寻找的是一些类似于:

Select
    vi.Name
   ,vi.Height
   ,vi.Power
   ,case when tt.losses < 3
         then 'Y'
         else 'N'
    end as MasteryKen
   ,tt.blahnum
   ,vi.blahtext
   ,vi.blahdate
   ,vi.blahcalc
   ,tt.blahflag
   ,vi.blahflag
   ,vi.blahcompare

From SenshiVitalInfo vi 
Join TatakauTable tt 
  on vi.namecd=tt.namecd

OrderOutputResults by tt.blahflag, vi.blahflag, *

是否有功能做在T-SQL(SQL Server 2008中)的最后一行存在吗?

Answer 1:

有一个在TSQL没有功能比编辑SELECT列表顺序“移动”列左右,其他的,这是你能做的最好的:

SELECT
    d.Name
   ,d.Height
   ,d.Power
   ,d.MasteryKen   --<<can now move around single lines
   ,d.blahnum
   ,d.blahtext
   ,d.blahdate
   ,d.blahcalc
   ,d.blahflag
   ,d.blahflag
   ,d.blahcompare
FROM (Select
          vi.Name
         ,vi.Height
         ,vi.Power
         ,case when tt.losses < 3
               then 'Y'
               else 'N'
          end as MasteryKen
         ,tt.blahnum
         ,vi.blahtext
         ,vi.blahdate
         ,vi.blahcalc
         ,tt.blahflag
         ,vi.blahflag
         ,vi.blahcompare

      From SenshiVitalInfo vi 
      Join TatakauTable tt 
        on vi.namecd=tt.namecd
     ) d
--ORDER BY ....

你可以用你现有的查询派生表,在那里你可以然后将所有你想要的单行列名内。 只要确保任何ORDER BY移出派生表。

如果您正在使用SSMS,您可以查看结果“结果网格”模式,并只需拖放列标题四处滑动列。



Answer 2:

不,这不存在。

如果你不喜欢运动的case语句,你可以把查询到您的选择,然后选择列表将被简化的视图,但是,似乎是努力给我一种浪费。



Answer 3:

我不认为这个功能的任何SQL变种的一部分。

如果您使用的是SQL IDE查看结果集,你可能能够拖动要在一起的专栏中,我用来做这SSMS。

否则,安倍晋三的答案是你能做的一切。



文章来源: Change order of columns appearing in results, without changing select order