Căutare pentru mai multe cuvinte într-un șir de caractere în SQL Server

0

Problema

Am un text transcrieri (string) coloană într-un tabel în SQL Server și am nevoie pentru a identifica dacă oricare dintre înregistrările conține un număr de securitate socială (nu există cifre în această coloană, numai text, așa că am nevoie pentru a scrie în cifre). Cu alte cuvinte am nevoie pentru a verifica dacă oricare dintre siruri de caractere conține orice combinație de nouă cifre din zece posibile cifrele simple (unu, doi, trei, patru, cinci, șase, șapte, opt, nouă, zero). Nu pot fi de acord cu identificarea o combinație de patru cifre (ultimele patru dintre numărul de securitate socială).

Am încercat Like '%one%' or Like '%two%' și așa mai departe, dar asta numai identifică cuvinte unice. Am nevoie de a găsi cel puțin patru în consecință, în același șir.

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

Cel mai bun răspuns

0

Puteți utiliza un agregat EXISTS cu o construit tabelul de cuvinte

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

Ai putea schimba >= 4 pentru a = 9 pentru a obține o potrivire exactă cu privire la numărul de cuvinte

2021-11-24 09:58:35

În alte limbi

Această pagină este în alte limbi

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