您可以检查这个方法只是相同的数据。
declare @mytable table (compid int,compname varchar(20),itemid int, itemdesc varchar(20))
insert into @mytable
values
(1,'Company A',100,'Nestle'),
(1,'Company A',200,'UniLever'),
(2,'Company B',300,'Citrix'),
(2,'Company B',400,'SQL'),
(2,'Company B',500,'Oracle'),
(1,'Company B',600,'Microsoft')
select
iif(left(m1.ord_id,1)>1,NULL,m.compid) [CompID],
iif(left(m1.ord_id,1)>1,NULL,m.compname) [CompName],
m.itemid,
m.itemdesc
from @mytable m
inner join (
select distinct compid,row_number() over (partition by compid order by itemid) [ord_id], itemid
from @mytable) m1
on m.compid = m1.compid and m.itemid = m1.itemid
或CTE
;with cte as
(
select distinct compid,row_number() over (partition by compid order by itemid) [ord_id], itemid
from @mytable
)
select
iif(left(m1.ord_id,1)>1,NULL,m.compid) [CompID],
iif(left(m1.ord_id,1)>1,NULL,m.compname) [CompName],
m.itemid,
m.itemdesc
from @mytable m
inner join cte m1
on m.compid = m1.compid and m.itemid = m1.itemid
,如果你不快乐与空值替换
iif(left(m1.ord_id,1)>1,'',cast(m.compid as varchar)) [CompID],
iif(left(m1.ord_id,1)>1,'',m.compname) [CompName],
结果
CompID CompName itemid itemdesc
1 Company A 100 Nestle
200 UniLever
600 Microsoft
2 Company B 300 Citrix
400 SQL
500 Oracle
或此等值的EntityFramework –
你混淆的领域数据无线显示器呈现。您在SSMS的结果选项卡中看到的呈现不是最终用户应该看到的内容(除非您计划对应用程序进行建模以使其看起来像SSMS)。强制数据库执行通常为应用程序保留的作业,一旦你接触到应用程序只会导致悲伤。 –