sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo convertir una lista de números en una tabla (temp) usando SQL (SQL Server)

Una solución que uso mucho...

Proporcione su lista de números como VARCHAR(MAX) cadena delimitada por comas, luego use uno de los muchos dbo.fn_split() funciones que la gente ha escrito en línea.

Uno de muchos ejemplos en línea... SQL-User-Defined-Function-to-Parse-a-Delimited-Str

Estas funciones toman una cadena como parámetro y devuelven una tabla.

Entonces puedes hacer cosas como...

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

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


Una alternativa es buscar en los parámetros de valores de tabla. Estos le permiten pasar una tabla completa a un procedimiento almacenado como parámetro. Cómo depende del marco que estés usando. ¿Está en .NET, Java, Ruby, etc. y cómo se comunica con la base de datos?

Una vez que conozcamos más detalles sobre el código de su aplicación, podemos mostrarle tanto el código del cliente como la plantilla de procedimiento almacenado de SQL para usar los parámetros de valores de tabla.