J'ai une chaîne comme ceci: Je veux utiliser cette chaîne dans un Pour cela, j'utilise la fonction de tables suivante. P> où code> clause avec un opérateur code> dans code>. P>
WHERE
TD.CaseId IN ('one', 'two', 'three')
4 Réponses :
Vous êtes proche, mais puisque vous avez maintenant une table, vous pouvez utiliser quelque chose comme:
Je n'ai pas compris "où [string] = td.casid" partie ici. Pourquoi cela utilise-t-il?
Qu'est-ce que voici [string]?
C'est le nom d'une colonne renvoyée par votre fonction.
Quand je l'utilise à nouveau, rien ne revient. Mais si j'utilise seulement cela toujours des données de retour pour tous les casides. Où existe (sélectionnez * à partir de [fn_rpt_commaseperated] (@values, ',')
J'ai réussi à obtenir les données à l'aide de votre suggestion et de petite modification à une fonction.
J'ai changé une fonction un peu et où la clause de SP pour obtenir la production attendue. Cela fonctionne bien.
WHERE **exists (select * from [FN_RPT_CommaSeperated_Kiosk] (@KioskId,',') where [String] = TD.CaseId)**
Vous devez avoir besoin de petits changements dans votre fonction Utiliser les valeurs ('+ @string +' ') code> au lieu de
valeurs (' ' '' + @ @String + '' '' ') code> p> p>
Il existe déjà une fonction de valorisation de la table est disponible sous SQL Server intégré dans SQL Server, puisque SQL Server 2016. string_split Vous pouvez faire quelque chose comme ci-dessous: P>