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

Подзаявка на sql сървър с разделен със запетая резултатен набор

Ето един трик, който използвах в миналото, за да правя подобни неща. Използвайте SUBSTRING функция.

    SELECT n.nominationID
        , SUBSTRING((
                            SELECT ',' + naf.awardFocusName
                            FROM NominationAwardFocus naf
                            JOIN AwardFocus af
                                ON naf.awardFocusID = af.awardFocusID
                            WHERE n.nominationID = naf.nominationID
                            FOR XML PATH('')

                        ), 2, 1000000)
    FROM Nomination n

Обърнете внимание, че 2 се използва за отрязване на водещата запетая, която подселекцията добавя към първия елемент, а 1000000 е избрано като голямо число, което означава „всички останали от низа“.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направите вътрешно присъединяване на номер на ред в sql сървър

  2. Актуализирайте, ако името съществува, else insert - в SQL Server

  3. SQL Server COALESCE() Обяснено

  4. 11 начина за извличане на първичен ключ в SQL Server (примери за T-SQL)

  5. Свързване на SQL Server към PostgreSQL