VIS*_*SQL 1 t-sql sql-server resultset sql-server-2008
我有一个查询,我选择了超过15件事,因此在我的结果中得到(超过)15列.我选择的一些东西是大CASE陈述.当然,T-SQL按顺序显示结果,而不是在SELECT
语句中列出内容.
有没有办法让结果列以不同的顺序显示,以帮助我审查它们,而不是
a)重新排序它们的选择方式(因为每次我想要并排比较其他两列时我都需要这样做)
即不要想改变:SELECT a,b,c,d,e,f
对SELECT f,d,a,b,c,e
,因为AF可以各自为5-10行代码
b)将结果拖放到彼此旁边的列中,因为如果我希望第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, *
Run Code Online (Sandbox Code Playgroud)
T-SQL(SQL Server 2008)中是否存在执行最后一行的函数?
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 ....
Run Code Online (Sandbox Code Playgroud)
您可以将现有查询包装在派生表中,然后可以在其中移动所需的单行列名称.只需确保将任何ORDER BY移出派生表.
如果您正在使用SSMS,则可以在"结果到网格"模式下查看结果集,只需拖放列标题即可滑动列.
归档时间: |
|
查看次数: |
3249 次 |
最近记录: |