sql >> Databáze >  >> RDS >> Sqlserver

Rozdělit řetězec Hodnoty sloupce

K výše uvedené chybě dochází od vašeho dílčího dotazu v SELECT vrátí více než jeden řádek. Zkuste provést toto:

SELECT * FROM SplitStrings('1,2,3',',') x

Uvidíte, že vrátí 3 řádky, jeden pro každou položku.

Abyste to napravili, musíte použít CROSS APPLY :

SQL Fiddle

SELECT 
    c.acctcode,
    x.primekey AS prime
INTO Chadtblsum
FROM Chadothercharges c
CROSS APPLY SplitStrings(c.groupby,',') x
WHERE groupby <> 'NULL'


  1. proč toto levé spojení vrací pouze jeden záznam?

  2. Top 3 tipy, které potřebujete vědět, abyste mohli psát rychlejší SQL pohledy

  3. Použití návratové hodnoty z DELETE pro UPDATE v Postgresu

  4. Je zobrazení rychlejší než jednoduchý dotaz?