我正在使用SQL Server 2014 Management Studio,在查询窗口中写作。
我们知道我们可以使用SQL查询获取所有返回的数据集,但它们总是作为整行返回。
是否可以只返回字段的第一个值以及该行中的其他字段?
以下是我在一个非常简单的查询中返回的内容,以及我想要返回的内容。所需的输出注定要在Firefly网页上发布。
谢谢。
答案 0 :(得分:0)
试试这个
DECLARE @Tbl TABLE (ID INT, Name NVARCHAR(50))
INSERT INTO @Tbl
VALUES
(300, 'joe'),
(300, 'Fred'),
(300, 'Alan'),
(301, 'Margaret'),
(301, 'Bill'),
(301, 'John')
SELECT
IIF(ID = LAG(ID) OVER (ORDER BY ID), '', CAST(ID AS VARCHAR(50))) AS NID,
Name
FROM
@Tbl
ORDER BY ID
结果:
NID Name
300 joe
Fred
Alan
301 Margaret
Bill
John
答案 1 :(得分:0)
如果您想要重复ID
的空格,则需要将ID
转换为字符串。您可以尝试使用LAG
select case when Id=lag(ID) over(order by ID) then '' else cast(Id as varchar(max)) end as ID,Name from Your_Table
示例:
create table #Tab1(Id int,Name nvarchar(max))
insert into #Tab1(Id,Name) Values
(301,'A'),
(301,'B'),
(301,'C'),
(302,'A'),
(302,'B'),
(303,'B'),
(304,'B')
select case when Id=lag(Id) over(order by id) then '' else cast(Id as varchar) end as ID,Name from #Tab1