2012-04-05 14 views
6

Devo abilitare la corrispondenza parziale sulla ricerca dei nomi. Attualmente funziona con Like '%@name%' ma non è abbastanza buono.Esecuzione della corrispondenza parziale sui campi nome in SQL Server

Dobbiamo abilitare la digitazione sia nel nome che nel cognome ed entrambi devono essere parziali, quindi sto assumendo che il testo completo sia la strada da percorrere.

Il problema è che non riesco a farlo fare una corrispondenza parziale su un nome. Ad esempio, la ricerca del mio nome (Fedor Hajdu) funzionerà se scrivo entrambe le parti in modo completo ma non parziale (ad esempio, deve corrispondere a una ricerca per 'fe ha'.

Come posso ottenere questo? È possibile impostare l'indice di testo completo su fare qualcosa di simile corrispondenza sillaba

risposta

3

Humm tre opzioni che Mya aiuto:?

  1. forma INFLECTIONAL (Link)
  2. CONTAINS con NEAR (Link)
  3. cON Solo un'attività con valori ponderati (Link)

Se questo non risolve il problema, ottenere la stringa 'fe ha' e aggiungere un '%' su ogni spazio vuoto e fare un come:

Like '%fe%ha%' 
+0

Nessuno di coloro che ha contribuito (almeno nel modo in cui li ho usati) –

+0

ben vedo una sola opzione a sinistra poi. vedi la mia modifica – Diego

+0

+1 per i collegamenti – Shiham

0

Utilizzando CONTAINS() o CONTAINSTABLE() tutto quello che devi fare è aggiungere * alla fine della tua stringa corrispondente:

CONTAINS (Descrizione, "" top * "');

Se avete la stringa come parametro si può concatenare in questo modo:

SET @SearchTerm = ' "' + @NameParameter + '*"'

CONTAINS (descrizione, SearchTerm);

https://technet.microsoft.com/en-us/library/ms142492(v=sql.105).aspx

Problemi correlati