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

Potrzebna pomoc w denerwującym oświadczeniu sql

Możesz przekonwertować swoją listę e-mailową na XML, a następnie wysłać zapytanie do XML za pomocą .nodes i .value .

declare @T table
(
  ID int,
  Emails varchar(100)
)

insert into @T values
(1, '[email protected], [email protected]'),
(2, '[email protected], [email protected]')

select T.Email, count(*) as [Count]
from (
      select X.N.value('.',  'varchar(30)') as Email
      from @T
        cross apply (select cast('<x>'+replace(Emails, ', ', '</x><x>')+'</x>' as xml)) as T(X)
        cross apply T.X.nodes('/x') as X(N)
     ) as T
group by T.Email

Wynik:

Email                          Count
------------------------------ -----------
[email protected]               1
[email protected]              2
[email protected]              1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawianie zbiorcze programu SQL Server — część 2

  2. Wykonaj regex (zamień) w zapytaniu SQL

  3. ModuleNotFoundError:Brak modułu o nazwie „pyodbc” podczas importowania pyodbc do skryptu py

  4. Błędy:Instrukcja INSERT EXEC nie może być zagnieżdżona. i Nie można użyć instrukcji ROLLBACK w instrukcji INSERT-EXEC. Jak to rozwiązać?

  5. Najszybszy sposób wykonywania zagnieżdżonych wstawek zbiorczych z użyciem scope_identity()?