我有一个查询,我选择了超过15件事,因此在我的结果中得到(超过)15列。我选择的一些东西是大CASE陈述。当然,T-SQL按顺序显示结果,而不是列出SELECT
语句中的内容。
有没有办法让结果列以不同的顺序显示,以帮助我查看它们,而不用
a)重新排序它们的选择方式(因为每次我想要并排比较其他两列时我都需要这样做)
即。不想更改:SELECT a,b,c,d,e,f
到SELECT f,d,a,b,c,e
因为a-f每个都可以是5-10行代码
b)将结果中的drag-n-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)中是否存在执行最后一行的函数?
答案 0 :(得分:5)
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 ,则可以在“结果到网格”模式下查看结果集,只需拖放列标题即可滑动列。
答案 1 :(得分:1)
不,这不存在。
如果您不喜欢移动case语句,可以将查询放入您选择的视图中,然后您将简化选择列表,但这对我来说似乎是浪费精力。
答案 2 :(得分:1)
我不认为此功能是任何SQL变体的一部分。
如果您使用SQL IDE查看结果集,您可以将所需的列拖动到一起,我曾经在SSMS中执行此操作。
否则安倍的答案就是你所能做的。