sql >> Database >  >> RDS >> Sqlserver

SQL Server 2000:Ideeën voor het uitvoeren van subquery's voor concatenatie-aggregatie

Bekijk deze artikelen eens:

http://dataeducation.com/rowset-string-concatenation- welke-methode-is-best/

http:// www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ (Zie de cross-join-oplossing van Phil Factor in de antwoorden - die zal werken in SQL Server 2000)

Het is duidelijk dat in SQL Server 2005 de FOR XML-truc het gemakkelijkst, meest flexibel en over het algemeen het meest performant is.

Wat betreft het retourneren van een rijenset voor elke rij, als u dat om de een of andere reden toch wilt doen, kunt u dat doen in een opgeslagen procedure, maar de client moet alle rijen in de eerste rijenset gebruiken en vervolgens naar de volgende gaan rijenset en deze koppelen aan de eerste rij in de eerste rijenset, enz. Je SP zou een cursor moeten openen op dezelfde set die hij heeft geretourneerd als de eerste rijenset en meerdere selecties achter elkaar moeten uitvoeren om alle onderliggende rijensets te genereren. Het is een techniek die ik heb toegepast, maar alleen waar ALLE de gegevens waren echt nodig (bijvoorbeeld in een volledig ingevulde boomstructuur).

En ongeacht wat mensen zeggen, het aan de clientzijde doen is vaak een zeer grote verspilling van bandbreedte, omdat het retourneren van alle rijen en het herhalen en breken in de clientzijde betekent dat een groot aantal identieke kolommen wordt overgedragen aan het begin van elke rij om de veranderende kolom aan het einde van de rij te krijgen.

Waar je het ook doet, het moet een weloverwogen beslissing zijn gebaseerd op uw gebruiksvoorbeeld.



  1. SequelizeConnectionRefusedError:verbind ECONNREFUSED 127.0.0.1:3306

  2. SqlAlchemy:de id van het laatst ingevoegde record ophalen

  3. sql-query met if-instructie

  4. UTF-16/Unicode-gegevens opslaan in SQL Server