Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [SQL] Errore ciclo CASE (colpa di MS SQL Server?)

    Purtroppo da una search sul forum e in giro non ho trovato soluzioni... o meglio, le ho trovate ma non funzionano. In pratica io ho questo codice funzionante

    codice:
    SELECT usrId, CASE usrId 
    	WHEN '1' THEN 'Normal'
    	WHEN '2' THEN 'Super'
    	ELSE 'Figo' END
       AS TipoUtente
    Che crea una colonna "TipoUtente" mettendo, a seconda, Normal Super o Figo. Ora, io dovrei trasformare il codice in modo che diventi:

    codice:
    SELECT usrId, CASE usrId 
    	WHEN usrId < 2 THEN 'Normal'
    	WHEN usrId > 2 AND < 4 THEN 'Super'
    	ELSE 'Figo' END
       AS TipoUtente
    Purtroppo questa soluzione non sembra funzionare in nessun caso (An error occurred while executing query. Line 2: incorrect syntax near '<'), nè mettendo END alla fine di ogni WHEN, nè mettendo un between al posto dei maggiori/minori, nè mettendo un qualsiasi operatore (se anche metto WHEN usrId='1' non funziona, e nemmeno con LIKE, e nemmeno facendo dei cast per far sì che lo riconosca come int).

    Che sia colpa di Microsoft SQL Server 2000?

    Se qualcuno ha una soluzione gliene sono grato. Ovviamente può andare benissimo anche sostituire il ciclo case con un altro qualsiasi, come un IF...ELSE se c'è una sintassi analoga

  2. #2
    Posto per completezza la soluzione (corretta) che mi hanno fornito: eliminare dopo il "case" la variabile, in modo che diventi

    codice:
    SELECT usrId, CASE 
    	WHEN usrId < 2 THEN 'Normal'
    	WHEN usrId > 2 AND < 4 THEN 'Super'
    	ELSE 'Figo' END

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.