有没有办法在SQLServerManagementStudio(SSMS)中分离查询结果?
我得到了一个简单的查询,它从有没有办法在SQLServerManagementStudio(SSMS)中分离查询结果?,sql,sql-server,ssms,Sql,Sql Server,Ssms,我得到了一个简单的查询,它从OrderLine表返回一个结果。是否有一种方法可以直观地分离查询结果,使其更易于阅读,如图所示 SELECT [OrderNo], [LineNo] FROM [OrderLine] 结果: 你不能直接这么做。也许可以添加一个新列,该列要么为null,要么其中包含一个值,以便它是交替的。 大概是这样的: select ..., case when rank() over (order by OrderNO) % 2 then 'XXX' else null en
OrderLine
表返回一个结果。是否有一种方法可以直观地分离查询结果,使其更易于阅读,如图所示
SELECT [OrderNo], [LineNo]
FROM [OrderLine]
结果:
你不能直接这么做。也许可以添加一个新列,该列要么为null,要么其中包含一个值,以便它是交替的。 大概是这样的:
select ..., case when rank() over (order by OrderNO) % 2 then 'XXX' else null end
from....
%2是一个“模”运算符…您可以执行多个查询,如下所示:
DECLARE @i int = 1
DECLARE @OrderNo
DECLARE @OrderNos TABLE (
Idx smallint Primary Key IDENTITY(1,1)
, OrderNo int
)
INSERT @OrderNos
SELECT distinct [OrderNo] FROM [OrderLine]
WHILE (@i <= (SELECT MAX(idx) FROM @employee_table))
BEGIN
SET @OrderNo = (SELECT [OrderNo] FROM [OrderNos] WHERE [Idx] = @i)
SELECT [OrderNo], [LineNo]
FROM [OrderLine]
WHERE [OrderNo] = @OrderNo
SET @i = @i + 1
END
声明@i int=1
声明@OrderNo
声明@OrderNos表(
Idx smallint主键标识(1,1)
,OrderNo int
)
插入@OrderNos
从[OrderLine]中选择不同的[OrderNo]
虽然(@i查询不用于显示…使用某种前端,Excel或其他方式,使您的数据美观。我不需要前端或UI,它只适合我在开发时使用。不,没有简单自然的方法。只是丑陋而已hacks@juergend你能和我们分享一些这些丑陋的黑客吗?那很有效,谢谢,别忘了补充在结束前设置@i=@i+1;
drop table if exists #OrderLine;
select object_id as OrderNo, abs(checksum(newid())) as [LineNo]
into #OrderLine
from sys.columns;
-- ... results to text (ctrl+T)?
select OrderNo, [LineNo],
case when lead(OrderNo, 1) over(partition by OrderNo order by OrderNo) = OrderNo then '' else replicate('-', 11) + char(10) end
from #OrderLine;
--inject NULL
select case when [LineNo] is null and flag=2 then null else TheOrderNo end as OrderNo, [LineNo]
from
(
select OrderNo AS TheOrderNo, [LineNo], 1 as flag
from #OrderLine
union all
select distinct OrderNo, NULL, 2
from #OrderLine
) as src
order by TheOrderNo, flag;