Hledat více slov v řetězci v SQL Server

0

Otázka

Mám textové přepisy (string) sloupce v tabulce v SQL Server a potřebuji zjistit, zda některý z evidence obsahuje číslo sociálního zabezpečení (žádná čísla v tomto sloupci, pouze text, takže musím hláskovat číslice). Jinými slovy musím zkontrolovat, pokud některý z řetězců obsahuje libovolnou kombinaci devět číslic z deseti možných číslic (jedna, dva, tři, čtyři, pět, šest, sedm, osm, devět, nula). Možná jsem v pořádku s identifikací kombinace libovolných čtyř číslic (poslední čtyři čísla sociálního zabezpečení).

Snažil jsem se Like '%one%' or Like '%two%' a tak dále, ale to jen identifikuje jednotlivá slova. Potřebuji najít alespoň nějaké čtyři v jakékoli následky ve stejný řetězec.

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

Nejlepší odpověď

0

Můžete použít souhrnné EXISTS s konstruovány tabulky slov

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

Můžete změnit >= 4 k = 9 získat přesnou shodu na počet slov

2021-11-24 09:58:35

V jiných jazycích

Tato stránka je v jiných jazycích

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