Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Co oznacza SELECT ... FOR XML PATH(' '),1,1)?

Nie ma tu żadnej prawdziwej techniki, której można by się nauczyć. To po prostu fajna sztuczka, aby połączyć wiele wierszy danych w jeden ciąg. Jest to bardziej dziwaczne użycie funkcji niż zamierzone użycie XML funkcja formatowania.

SELECT ',' + ColumnName ... FOR XML PATH('')

generuje zestaw wartości oddzielonych przecinkami, w oparciu o połączenie wielu wierszy danych z ColumnName kolumna. Wygeneruje wartość taką jak ,abc,def,ghi,jkl .

STUFF(...,1,1,'')

Jest następnie używany do usunięcia wiodącego przecinka wygenerowanego przez poprzednią sztuczkę, zobacz STUFF aby uzyskać szczegółowe informacje na temat jego parametrów.

(Co dziwne, wiele osób ma tendencję do określania tej metody generowania zestawu wartości oddzielonych przecinkami jako „metody STUFF” pomimo STUFF odpowiadam tylko za ostatnią część przycinania)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sposoby odzyskiwania danych z pliku dziennika transakcji programu SQL Server

  2. Jak pobrać liczbę wierszy dla wszystkich tabel w bazie danych SQL SERVER?

  3. Używanie INSERT INTO z SQL Server do zmiany danych Salesforce

  4. SQL Server — Usuń wszystkie niedrukowalne znaki ASCII

  5. Efekt podpowiedzi NOLOCK w instrukcjach SELECT