Select case

mercoledì 16 aprile 2008 - 16.48

perla0279 Profilo | Senior Member

ciao
ho creato un select case per la costruzione di un menu collegamento......

però non mi conta le righe da database cioè a video mi inserisce sempre e solo l'ultimo collegamento.......il 7

ALTER PROCEDURE [dbo].[SalvaCollegamenti]

@RiferimentoPagina AS NVARCHAR(3),
@RiferimentoLingua AS NVARCHAR (3)
AS
SET NOCOUNT ON


DECLARE @Articoli TABLE (
[Numero] [integer] )

declare @NuovoCollegamento as nvarchar (4000)
declare @codice as nvarchar (100)
declare @codice2 as nvarchar (100)



insert into @articoli (Numero)
select riga from ProdottiGallerie where codicepagina=@RiferimentoPagina and codicelingua=@RiferimentoLingua

select @NuovoCollegamento= case
when numero < 36 then 'xxxxxxxxx.'
when numero < 106 then 'xxxxxx.'
when numero < 141 then 'xxxxxx.'
when numero < 176 then 'xxxxxx.'
when numero < 211 then 'xxxxxx.'
when numero < 246 then '<xxxx.'
when numero < 280 then 'xxxxxxx'

end
from @Articoli


non sono molto braava con sql.....mi sembrava che come procedimento logico fosse giusto ma evidentemente mi sbagliavo???'

alx_81 Profilo | Guru

>ciao
Ciao!

>non sono molto braava con sql.....mi sembrava che come procedimento
>logico fosse giusto ma evidentemente mi sbagliavo???'
Mancano i limiti superiori nei test. Ogni numero che vai a testare, arriverà sempre al settimo test, perchè se il numero è minore di uno dei test precedenti, sarà sicuramente anche minore dell'ultimo. E quindi l'ultimo considerato è proprio quello alla fine. Prova a fare una cosa simile alla seguente:

SELECT @NuovoCollegamento = CASE WHEN numero < 36 then 'xxxxxxxxx.' WHEN numero >= 36 AND numero < 106 then 'xxxxxx.' WHEN numero >= 106 AND numero < 141 then 'xxxxxx.' -- ... END FROM @Articoli


Alx81 =)

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

perla0279 Profilo | Senior Member

ok proverò a fare come dici poi vi faccio sapere se com metoto è corretto
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