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

Używanie UNION ALL w STUFF / XML Path

Istnieje proste obejście tego problemu:należy otoczyć zapytanie składające (lub dowolną tabelę pochodną w tym przypadku) innym wyborem. Zrób to, a następnie kontynuuj składnię normalnie:

select * from
(
SELECT 1 as I
UNION ALL
SELECT 2 as J
) as K

Czegoś takiego właśnie szukasz:

SELECT  STUFF((
    select * from(

    SELECT * from dbo.Table1 as I
    UNION ALL
    SELECT * from dbo.Table2 as j
    ) as k
    FOR XML PATH('')
    ),1,0,'')

Sprawdziłem i działa bez zarzutu




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porównaj ciągi rozdzielane przecinkami w SQL

  2. Zamiana znaków w ciągu na podstawie wierszy w tabeli sql

  3. Wersjonowanie bazy danych SQL Server

  4. SQL Server 2008 R2 — wyspy i luki

  5. Jak oddzielić datę od napisu?