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

Jak převést seznam čísel do (dočasné) tabulky pomocí SQL (SQL Server)

Řešení, které často používám...

Dodejte svůj seznam čísel jako VARCHAR(MAX) řetězec oddělený čárkou, pak použijte jeden z mnoha dbo.fn_split() funkce, které lidé napsali online.

Jeden z mnoha příklady online... SQL-User-Defined-Function-to-Parse-a-Delimited-Str

Tyto funkce berou řetězec jako parametr a vracejí tabulku.

Pak můžete dělat věci jako...

INSERT INTO @temp SELECT * FROM dbo.split(@myList)

SELECT
  *
FROM
  myTable
INNER JOIN
  dbo.split(@myList) AS list
    ON list.id = myTable.id


Alternativou je podívat se do Table Valued Parameters. Ty umožňují předat celou tabulku do uložené procedury jako parametr. Jak závisí na frameworku, který používáte. Jste v .NET, Java, Ruby atd. a jak komunikujete s databází?

Jakmile budeme vědět více podrobností o kódu vaší aplikace, můžeme vám ukázat kód klienta i šablonu uložené procedury SQL pro použití parametrů tabulky.



  1. Seskupit podle aliasu (Oracle)

  2. pivot nefunguje při použití vnořeného výběru v SQL

  3. Naplňte databázi Django

  4. Proč PDO::lastInsertId vrací 0?