Vraag : Hoe te om lijstvariabele voor inputparameter te gebruiken

Hallo,

I am iets als het volgende proberen te doen die niet werkt:

select *
from table1
where Col1 in (@list)

I heeft fundamenteel een opgeslagen procedure die een parameter goedkeurt die een komma afgebakende lijst van IDs kan zijn, b.v.:
'1,2,3,4'< br/>
I wil geen dynamische sql gebruiken maar gebruikt eerder een lijstvariabele en dan treedt doen op de lijstvariabele toe. Maar ik ben niet zeker hoe te om de lijst van waarden in de lijstvariabele te ontleden. Hoe kan dit worden gedaan?

Thanks

Antwoord : Hoe te om lijstvariabele voor inputparameter te gebruiken

U kunt de functie hieronder gebruiken om de lijst te creëren u wenst
gebaseerd op de komma-gescheiden waarden hebt u.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
cre�ër functie fn_MySplit (
 nvarchar @String (4000)
 )
winst @ValueTable lijst ([Waarde] nvarchar (4000))
begin
 verklaar @NextString nvarchar (4000)
 verklaar @Pos int.
 verklaar @NextPos int.
 verklaar @Delimeterer nvarchar (1)
 verklaar @CommaCheck nvarchar (1)
 
 --Initialiseer
 plaats het @NextString = ''
 plaats @Delimeter = „,“
 plaats @CommaCheck = juist (het @String, 1) 
 
 --Controle voor het slepen van Komma, als niet er bestaat, TUSSENVOEGSEL
 als (@CommaCheck <> @Delimiter)
  het vastgestelde @String = @String + @Delimiter
 
 --Krijg positie van eerste Komma
 plaats @Pos = charindex (@Delimiter, @String)
 plaats @NextPos = 1
 
 --Lijn terwijl er nog een komma in het Koord van niveaus is
 terwijl (@pos <>  0)  
 begin
  plaats het @NextString = substring (het @String, 1, @Pos - 1)
 
  tussenvoegsel in @ValueTable ([Waarde]) Waarden (het @NextString)
 
  het vastgestelde @String = substring (het @String, @pos +1, len (@String))
  
  vastgestelde @NextPos = @Pos
  vastgesteld @pos  = charindex (@Delimiter, @String)
 eind
 
 terugkeer
eind
Andere oplossingen  
 
programming4us programming4us