Ricerca SQL

lunedì 22 gennaio 2007 - 10.56

StefanoLep Profilo | Senior Member

Ciao a tutti devo fare una ricerca: devo cercare tutti i codici che contengono '123' ad esempio 'AB123' o '123CD' o 'AB123CD' e fin qui non ci sarebbero problemi però devo scartare tutti i codici che hanno un numero vicino al mio '123' ad esempio devo scartare '0123' o '1234'. Il db è SQL Server, ringrazio per l'aiuto :-)

amelix Profilo | Expert

Io userei il metodo + semplice, anche se macchinoso, possibile....
10 + 10 unlike che antepongono/postpongono le cifre da 0 a 9...

Non è un metodo ingegnerizzato... ma funziona!
Andrea
http://www.MelisWeb.eu/

StefanoLep Profilo | Senior Member

:-) non è un metodo formalmente impeccabile ma funziona e mi piace :-) se non troverò una forma migliore utilizzerò questo GRAZIE

lbenaglia Profilo | Guru

>Ciao a tutti devo fare una ricerca: devo cercare tutti i codici
>che contengono '123' ad esempio 'AB123' o '123CD' o 'AB123CD'
>e fin qui non ci sarebbero problemi però devo scartare tutti
>i codici che hanno un numero vicino al mio '123' ad esempio
>devo scartare '0123' o '1234'. Il db è SQL Server

Ciao StefanoLep,

secondo me dovresti riuscire a risolvere utilizzando l'operatore LIKE:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

> ringrazio per l'aiuto :-)
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

amelix Profilo | Expert

FANTASTICO!!!
Ma allora è possibile inserire delle espressioni regolari in MsSql server?
Andrea
http://www.MelisWeb.eu/

lbenaglia Profilo | Guru

>FANTASTICO!!!
>Ma allora è possibile inserire delle espressioni regolari in
>MsSql server?

Ciao Andrea,

l'operatore LIKE appartiene allo standard ANSI, ce l'ha anche il JET-SQL (per intenderci quello di Access)
Non è flessibile come un RegExp, ma permette di inserire semplici pattern di ricerca.
Se utilizzi SQL Server 2005 puoi scrivere una funzione scalare basata sul RegExp del CLR che ti permetterebbe di specificare tutti i pattern che desideri
Per maggiori informazioni leggi il seguente paragrafo dei Books Online:

"LIKE (Transact-SQL)"
http://msdn2.microsoft.com/it-it/library/ms179859.aspx

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

StefanoLep Profilo | Senior Member

Beh questa query è decisamente più pulita...Grazie Lorenzo, il tuo aiuto è come al solito impareggiabile
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5