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

Подзаявката върна повече от 1 стойност

Грешката е тук, където имате много редове, които се опитват да бъдат присвоени на една променлива

SET @Recipients =(SELECT DISTINCT a.EMail
     FROM   a
    --approximately 600 email addresses 

По този начин ще трябва да го промените на отделен списък

SET @Recipients = STUFF(
           (select DISTINCT ';' + CAST(a.EMail AS varchar(max))
           FROM a FOR XML PATH ('')
           )
          ,1,1, '') 

Забележка:@Recipients ще трябва да бъде varchar(max)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирате „Отказът на ALTER TABLE SWITCH е неуспешен“ Msg 4982 (SQL Server)

  2. Възможно ли е да се откаже достъп до SQL Server от конкретни програми?

  3. Рекурсивна заявка за намиране на родителския запис

  4. Изберете стойност при условие в SQL Server

  5. Как да промените схемата на обект (таблица, изглед, съхранена процедура) в база данни на SQL Server - SQL Server / TSQL урок, част 28