Rechercher plusieurs mots dans une chaîne de caractères dans SQL Server

0

La question

J'ai un des transcriptions de texte (chaîne de caractères) de la colonne dans une table dans SQL Server et j'ai besoin d'identifier si l'un des enregistrements contient un numéro de sécurité sociale (pas de chiffres dans cette colonne, que du texte, donc j'ai besoin d'énoncer les chiffres). En d'autres mots j'ai besoin de vérifier si la chaîne contient une combinaison de neuf chiffres de la dix chiffres possibles (un, deux, trois, quatre, cinq, six, sept, huit, neuf, zéro). J'ai peut-être pas d'accord avec l'identification d'une combinaison de quatre chiffres (quatre derniers du numéro de sécurité sociale).

J'ai essayé Like '%one%' or Like '%two%' et ainsi de suite, mais seulement identifie des mots simples. J'ai besoin de trouver au moins toutes les quatre en conséquence, dans la même chaîne.

search sql sql-server tsql
2021-11-24 02:41:49
1

La meilleure réponse

0

Vous pouvez utiliser un agrégé EXISTS avec la construction d'un tableau de mots

SELECT *
FROM YourTable t
WHERE EXISTS (SELECT 1
    FROM (VALUES
        ('zero'),
        ('one'),
        ('two'),
        ('three'),
        ('four'),
        ('five'),
        ('six'),
        ('seven'),
        ('eight'),
        ('nine')
    ) v(word)
    WHERE t.YourColumn LIKE '%' + v.word + '%'
    HAVING COUNT(*) >= 4
);

Vous pouvez changer >= 4 pour = 9 pour obtenir une correspondance exacte sur le nombre de mots

2021-11-24 09:58:35

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................