sql >> Databáze >  >> RDS >> Sqlserver

SQL Server 2000:Nápady pro provádění poddotazu agregace zřetězení

Podívejte se na tyto články:

http://dataeducation.com/rowset-string-concatenation- která-metoda je nejlepší/

http:// www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/ (Viz řešení křížového spojení Phil Factor v odpovědích – které bude fungovat v SQL Server 2000)

Je zřejmé, že v SQL Server 2005 je trik FOR XML nejjednodušší, nejflexibilnější a obecně nejvýkonnější.

Pokud jde o vrácení sady řádků pro každý řádek, pokud to z nějakého důvodu stále chcete provést, můžete to udělat v uložené proceduře, ale klient bude muset spotřebovat všechny řádky v první sadě řádků a poté přejít na další rowset a přidružit jej k prvnímu řádku v první sadě řádků atd. Váš SP by musel otevřít kurzor na stejné sadě, kterou vrátil jako první sada řádků, a spustit více výběrů v pořadí, aby se vygenerovaly všechny podřízené sady řádků. Je to technika, kterou jsem udělal, ale pouze tam, kde VŠICHNI data skutečně byla potřeba (například v plně vyplněném stromovém zobrazení).

A bez ohledu na to, co lidé říkají, dělat to na straně klienta je často velmi velké plýtvání šířkou pásma, protože vracení všech řádků a provádění smyčky a přerušení na straně klienta znamená, že se na začátku přenáší obrovské množství identických sloupců. každý řádek jen proto, aby se měnící sloupec dostal na konec řádku.

Ať to uděláte kdekoli, mělo by to být informované rozhodnutí na základě vašeho případ použití.



  1. Vyberte poslední řádek pomocí GROUP BY v MySQL

  2. Oprava „ERROR 1222 (21000):Použité příkazy SELECT mají jiný počet sloupců“ při použití UNION v MySQL

  3. Jak mohu zjistit a svázat změny mezi hodnotami řádků v tabulce SQL?

  4. potíže s vytvářením hlaviček pomocí spool v sqlplus