0
votes

Insérez des guillemets à chaque mot dans la chaîne séparée par virgule SQL et utilisation dans la fonction SQL

J'ai une chaîne comme ceci: xxx pré>

Je veux utiliser cette chaîne dans un où code> clause avec un opérateur code> dans code>. P>

Pour cela, j'utilise la fonction de tables suivante. P>

WHERE
    TD.CaseId IN ('one', 'two', 'three')


0 commentaires

4 Réponses :


1
votes

Vous êtes proche, mais puisque vous avez maintenant une table, vous pouvez utiliser quelque chose comme: xxx


5 commentaires

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.



0
votes

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)**


0 commentaires

0
votes

Vous devez avoir besoin de petits changements dans votre fonction xxx

Utiliser les valeurs ('+ @string +' ') au lieu de valeurs (' ' '' + @ @String + '' '' ')


0 commentaires

2
votes

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 xxx

Vous pouvez faire quelque chose comme ci-dessous: xxx


0 commentaires