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

Как да конвертирате списък с числа във (временна) таблица с помощта на SQL (SQL Server)

Решение, което използвам много...

Предоставете вашия списък с числа като VARCHAR(MAX) разделен със запетая низ, след което използвайте един от многото dbo.fn_split() функции, които хората са написали онлайн.

Един от много примери онлайн... SQL-дефинирана-от-потребител-функция-за-разбор на-разделена-Str

Тези функции приемат низ като параметър и връщат таблица.

Тогава можете да правите неща като...

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

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


Алтернатива е да разгледате стойностните параметри на таблицата. Те ви позволяват да предадете цяла таблица в съхранена процедура като параметър. Как зависи от рамката, която използвате. Използвате ли .NET, Java, Ruby и т.н. и как комуникирате с базата данни?

След като научим повече подробности за кода на вашето приложение, можем да ви покажем както клиентския код, така и шаблона на SQL съхранена процедура за използване на параметри със стойност на таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Архивиране на SQL Server 2017 -3

  2. Върнете всички файлови групи за текущата база данни в SQL Server

  3. Конкатенация на низове на SQL Server с Null

  4. Използване на изходен параметър от съхранена процедура на SQL Server в Access

  5. SqlException не беше обработено