Sie können prüfen, diese Methode aber die gleichen Daten.
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
oder 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
, wenn Sie mit NULL-Werte nicht zufrieden sind, ersetzen die Felder
iif(left(m1.ord_id,1)>1,'',cast(m.compid as varchar)) [CompID],
iif(left(m1.ord_id,1)>1,'',m.compname) [CompName],
Ergebnis
CompID CompName itemid itemdesc
1 Company A 100 Nestle
200 UniLever
600 Microsoft
2 Company B 300 Citrix
400 SQL
500 Oracle
oder das Äquivalent in EntityFramework –
Du verwechselst Daten wi th Anzeige Rendern. Das Rendering, das Sie auf der Registerkarte "Ergebnisse" von SSMS sehen, ist nicht das, was der Endbenutzer sehen sollte (es sei denn, Sie möchten Ihre Anwendung wie SSMS aussehen lassen) ... Erzwingen, dass die Datenbank den normalerweise für die Anwendung reservierten Job ausführt wird nur Kummer verursachen, sobald du zur Anwendung kommst. –