sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Server 2000:Idéer til udførelse af sammenkædningsaggregeringsunderforespørgsel

Tag et kig på disse artikler:

http://dataeducation.com/rowset-string-concatenation- hvilken-metode-er-bedst/

http:// www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ (Se Phil Factors cross join-løsning i svarene - som vil fungere i SQL Server 2000)

I SQL Server 2005 er FOR XML-tricket tydeligvis det nemmeste, mest fleksible og generelt mest effektive.

For så vidt angår returnering af et rækkesæt for hver række, hvis du stadig ønsker at gøre det af en eller anden grund, kan du gøre det i en lagret procedure, men klienten bliver nødt til at forbruge alle rækkerne i det første rækkesæt og derefter gå til det næste rækkesæt og tilknytte det til den første række i det første rækkesæt osv. Din SP skal åbne en markør på det samme sæt, den returnerede som det første rækkesæt og køre flere valg i rækkefølge for at generere alle underordnede rækkesæt. Det er en teknik jeg har lavet, men kun hvor ALLE dataene var faktisk nødvendige (for eksempel i en fuldt udfyldt trævisning).

Og uanset hvad folk siger, er det ofte et meget stort spild af båndbredde at gøre det på klientsiden, fordi at returnere alle rækkerne og udføre looping og bryde i klientsiden betyder, at et stort antal identiske kolonner bliver overført i starten af hver række bare for at få den skiftende kolonne i slutningen af ​​rækken.

Uanset hvor du gør det, bør det være en informeret beslutning baseret på din use case.



  1. 1064 fejl i CREATE TABLE ... TYPE=MYISAM

  2. MySQL opdaterer et felt med en stigende variabel

  3. Endnu et dateTime-spørgsmål

  4. Kan jeg udføre flere forespørgsler adskilt af semikolon med MySQL Connector/J?