sql >> Database >  >> RDS >> Sqlserver

Hoe een lijst met getallen naar een (tijdelijke) tabel te converteren met behulp van SQL (SQL Server)

Een oplossing die ik veel gebruik...

Geef uw lijst met nummers op als een VARCHAR(MAX) door komma's gescheiden tekenreeks en gebruik vervolgens een van de vele dbo.fn_split() functies die mensen online hebben geschreven.

Een van de vele voorbeelden online... SQL-User-Defined-Function-to-Parse-a-Delimited-Str

Deze functies nemen een string als parameter, en retourneren een tabel.

Dan kun je dingen doen als...

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

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


Een alternatief is om naar tabelwaarden te kijken. Hiermee kunt u een hele tabel als parameter doorgeven aan een opgeslagen procedure. Hoe hangt af van het framework dat je gebruikt. Ben je in .NET, Java, Ruby, etc, en hoe communiceer je met de database?

Zodra we meer details over uw toepassingscode weten, kunnen we u zowel de clientcode als de sjabloon voor de opgeslagen SQL-procedure tonen voor het gebruik van tabelwaardenparameters.



  1. Wat ik graag zou willen zien in Amazon EC2 voor databasebeheer

  2. Hoe MySQL-triggers in bulk te veranderen DEFINER

  3. Hoe kun je de cakephp-pagination count-query op postgresql verwijderen of wijzigen?

  4. Kan geen toegang krijgen tot een exemplaar van SQL Server 2008 R2 op afstand