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

Połącz dwa stoły w jednym

Może coś takiego (jeśli używasz MSSQL 2005+):

CREATE TABLE NewTable
(
    messageID INT,
    sender VARCHAR(100),
    recipient VARCHAR(MAX),
    date DATETIME
)
INSERT INTO NewTable(messageID,sender,recipient,date)
SELECT
    [Message].messageID,
    [Message].sender,
    STUFF
    (
        (
            SELECT 
                ',' +recipient
            FROM
                recipientInfo
            WHERE
                recipientInfo.messageID=[Message].messageID
            FOR XML PATH('')
        )
    ,1,1,'') AS recipient,
    [Message].date
FROM
    [Message]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wykonaj duży skrypt SQL (za pomocą poleceń GO)

  2. Jak uzyskać ostatni dzień zeszłego tygodnia w sql?

  3. Liczba Entity Framework Core nie ma optymalnej wydajności

  4. WSTAWIENIE ZBIORCZE brakuje ostatniego wiersza?

  5. Opcjonalne argumenty w klauzuli WHERE