Stored con il like

lunedì 22 ottobre 2007 - 14.00

trinity Profilo | Guru

salve ragazzi,
ho scritto questa stored in sql management server:

IF @Comune IS NULL OR LEN(@Comune) = 0
SELECT codcomune,comune,prov
FROM dbo.Comuni
WHERE 1 = 0
ELSE
SELECT codcomune,comune,prov
FROM dbo.Comuni
WHERE comune LIKE @Comune + '%'
END

e funziona solo che ora dovrei cambiare il like in questo modo:

...comune LIKE @Comune + %'

solo che se eseguo la stored mi genera un errore in quanto l'END finale è come se venisse remmato

come posso fare visto che in vb net nel compilatore questa stored nel modo in cui l'ho modificata funziona perfettamente in quanto utilizzo qquesta sintassi: ...comune LIKE @Comune + "%'"

Ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>e funziona solo che ora dovrei cambiare il like in questo modo:
>
>...comune LIKE @Comune + %'

Manca un apice prima del carattere %...

>come posso fare visto che in vb net nel compilatore questa stored
>nel modo in cui l'ho modificata funziona perfettamente in quanto
>utilizzo qquesta sintassi: ...comune LIKE @Comune + "%'"
Nel compilatore di vb net?
Spiegati meglio...

>Ciao e grazie
Prego.

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

trinity Profilo | Guru

mi spiego meglio la mia stored è la seguente:

ALTER PROCEDURE [dbo].[GetComune] ( @Comune Varchar(250)=NULL ) AS BEGIN IF @Comune IS NULL OR LEN(@Comune) = 0 SELECT codcomune,comune,prov FROM dbo.Comuni WHERE 1 = 0 ELSE SELECT codcomune,comune,prov FROM dbo.Comuni WHERE comune LIKE @Comune + '%' END

nella tabella comuni ci sono i seguenti comuni:

Ponza
Ponzano di Ferro
Ponzano di Monferrato

se io eseguo tramite il compilatore vb net questa stored solo il comune di Ponza non me lo prende.

Come mai?

ciao

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>nella tabella comuni ci sono i seguenti comuni:
>
>Ponza
>Ponzano di Ferro
>Ponzano di Monferrato
>
>se io eseguo tramite il compilatore vb net questa stored solo
>il comune di Ponza non me lo prende.
Mi spieghi cosa c'entra "il compilatore vb net"?!?!
Visual Basic .Net non sa nemmeno cos'è una stored procedure
Che data type ha la colonna "comune" della tabella dbo.Comuni?

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

trinity Profilo | Guru

è un Varchar(250)

cmq eseguo la stored ecco cosa mi riporta:

6135 Ponzano Monferrato AL
26059 Ponzano Veneto TV
44059 Ponzano di Fermo AP
58080 Ponzano Romano RM
59018 Ponza LT

solo che io eseguendo nel parametro ho scritto solo Ponza quindi mi doveva riportare solo il record del comune di Ponza

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>è un Varchar(250)
>
>cmq eseguo la stored ecco cosa mi riporta:
>
>6135 Ponzano Monferrato AL
>26059 Ponzano Veneto TV
>44059 Ponzano di Fermo AP
>58080 Ponzano Romano RM
>59018 Ponza LT
>
>solo che io eseguendo nel parametro ho scritto solo Ponza quindi
>mi doveva riportare solo il record del comune di Ponza
Assolutamente NO!
Leggi bene come funziona l'operatore LIKE...

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

trinity Profilo | Guru

scusa in che senso "assolutamente no"

a cosa ti riferisci?


Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>scusa in che senso "assolutamente no"
>
>a cosa ti riferisci?
Al fatto che il risultato che ottieni è corretto.

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

trinity Profilo | Guru

ho capito!
ma ti spiego meglio io questa stored la eseguo in vb net su una textbxo quando scrivo i caretteri da ricercare.

quindi se io scrivo solo nella textbox ponza vorrei che quando passo su un'altra textbox il compilatore mi lasci solamente il comune Ponza ma dandomi prima Ponzano Monferrato è quest'ultimo il comune che mi resta visualizzato


Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>ho capito!


>quindi se io scrivo solo nella textbox ponza vorrei che quando
>passo su un'altra textbox il compilatore mi lasci solamente il
>comune Ponza ma dandomi prima Ponzano Monferrato è quest'ultimo
>il comune che mi resta visualizzato
E mettere una bella:

ORDER BY Comune

??

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

trinity Profilo | Guru

ok

senti ultima cosa, hai qualche link dove posso vedere tutti i segni jolly che posso utilizzare con il like e che ovviamente spiegano a cosa servono?

ciao!
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

lbenaglia Profilo | Guru

>senti ultima cosa, hai qualche link dove posso vedere tutti i
>segni jolly che posso utilizzare con il like e che ovviamente
>spiegano a cosa servono?
Come sempre trovi tutto sui Books Online:

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

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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