Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL Server 2000:Идеи за извършване на подзаявка за агрегиране на конкатенация

Разгледайте тези статии:

http://dataeducation.com/rowset-string-concatenation- кой-метод-е-най-добър/

http:// www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ (Вижте решението за кръстосано свързване на Phil Factor в отговорите - което ще работи в SQL Server 2000)

Очевидно в SQL Server 2005 трикът FOR XML е най-лесният, най-гъвкавият и като цяло най-производителният.

Що се отнася до връщането на набор от редове за всеки ред, ако все пак искате да направите това по някаква причина, можете да го направите в съхранена процедура, но клиентът ще трябва да консумира всички редове в първия набор от редове и след това да премине към следващия набор от редове и да го свържете с първия ред в първия набор от редове и т.н. Вашият SP ще трябва да отвори курсор върху същия набор, който е върнал като първия набор от редове, и да изпълни множество селекции последователно, за да генерира всички дъщерни набори от редове. Това е техника, която съм правил, но само където ВСИЧКИ данните действително са били необходими (например в напълно попълнен дървовиден изглед).

И независимо от това какво казват хората, правенето му от страна на клиента често е много голяма загуба на честотна лента, тъй като връщането на всички редове и извършването на цикъл и прекъсване от страна на клиента означава, че огромен брой идентични колони се прехвърлят в началото на всеки ред само за да получите променящата се колона в края на реда.

Където и да го направите, това трябва да е информирано решение въз основа на вашесто случай на употреба.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изявлението за актуализация се изпълнява твърде дълго или не

  2. Как да генерирате поле за автоматично увеличение в заявка за избор

  3. Кога мога да хоствам IIS и SQL Server на една и съща машина?

  4. Грешка при аритметично препълване в SQL

  5. Единична или множество бази данни