Question : Comment employer la variable de table pour le paramètre d'entrée

Bonjour, le

I AM essayant de faire quelque chose aiment le suivant qui ne fonctionne pas :

select * le
from table1
where Col1 dans le

I (de @list) ont fondamentalement un procédé stocké qui accepte un paramètre qui peut être une liste délimitée par virgule d'IDs, par exemple : le Br/>
I du
'1,2,3,4'< ne veulent pas employer le SQL dynamique mais employer plutôt une variable de table et puis faire une jointure sur la variable de table. Mais je ne suis pas sûr comment analyser la liste de valeurs dans la variable de table. Comment est-ce que ceci peut être fait ?

Thanks
class= de

Réponse : Comment employer la variable de table pour le paramètre d'entrée

Vous pouvez employer la fonction ci-dessous pour créer la table que vous avez besoin
basé sur les valeurs virgule-séparées vous avez.
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 :
créer le fn_MySplit de fonction (
 @String nvarchar (4000)
 )
renvoie la table @ValueTable ([valeur] nvarchar (4000))
commencer
 déclarer @NextString nvarchar (4000)
 déclarer les @Pos international
 déclarer les @NextPos international
 déclarer le @Delimeterer nvarchar (1)
 déclarer le @CommaCheck nvarchar (1)
 
 --Initialiser
 placer @NextString = ''
 placer le @Delimeter = « , »
 placer le @CommaCheck = droit (@String, 1) 
 
 --Vérifier la virgule de remorquage, sinon existe, S'INSÈRE
 si (@Delimiter <> de @CommaCheck)
  @String réglé = @String + @Delimiter
 
 --Obtenir la position de la première virgule
 placer les @Pos = le charindex (le @Delimiter, @String)
 placer les @NextPos = 1
 
 --Faire une boucle tandis qu'il y a toujours une virgule dans la corde des niveaux
 tandis que (@pos <>  0)  
 commencer
  placer @NextString = la sous-chaîne (@String, 1, @Pos - 1)
 
  insérer dans ([valeur]) des valeurs @ValueTable (@NextString)
 
  placer @String = sous-chaîne (@String, les @pos +1, len (@String))
  
  placer les @NextPos = les @Pos
  placer les @pos  = le charindex (le @Delimiter, @String)
 extrémité
 
 retour
extrémité
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us