Comment puis-je vérifier que Varcharne contient tous les caractères d'un autre Varchar, où la séquence de caractères n'est pas pertinente?
Par exemple: j'ai Varchar J'ai essayé quelque chose comme ça: p> mais je ne peux pas mettre cela à @a = 'ABC' code> et colonne code> 'Col' code> dans le tableau
'Table' code> Où est la ligne avec
'col' = 'cbad' code>. Je souhaite sélectionner cette ligne, car il contient tous les caractères de
@a code> variable. S'il vous plaît pour votre aide. P>
où code> condition code> / p> p>
4 Réponses :
Vous pouvez essayer comme ceci: ou vous pouvez essayer d'utiliser Patindex p>
Votre deuxième solution ne vérifie que l'existence de 1 caractère dans le nom du col. Cela donnerait le même résultat que votre première solution avec ou au lieu de et
Votre premier besoin de diviser votre variable que vous vérifiez dans des lignes et supprimez les doublons. Pour seulement quelques caractères, vous pouvez simplement utiliser un constructeur de valeurs de table: qui donne: p> Vous pouvez également comparer ceci à votre colonne, et limitez-la uniquement aux colonnes où la colonne contient toutes les lettres (faites dans le si votre variable peut être plus longue Plus de 10 caractères, vous devrez peut-être adopter une méthode de fractionnement légèrement différente. J'utiliserais toujours des chiffres pour le faire, mais j'utiliserais plutôt La méthode CTE empilée de Itzik Ben-Gan : p> Cela vous donnera un ensemble de nombres de 1 à 10 000, et vous pouvez simplement ajouter plus de CTE et de jointures croisées si nécessaire pour étendre le processus. Donc, avec une chaîne plus longue, vous pourriez avoir: p> ayant code> clause) p>
Une autre version:
SELECT * FROM yourTable WHERE PATINDEX('%A%',colname) >= 1 and PATINDEX('%B%',colname) >= 1 AND PATINDEX('%C%',colname) >= 1
Les guillemets simples sont destinés aux littéraux de cordes / varchar. N'utilisez pas ceux des noms de colonne ou de table.