有没有办法在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;