22 messaggi dal 03 settembre 2008
Salve a tutti,
avrei bisogno di una delucidazione:

è possibile avere una SELECT che faccia un'operazione matematica su di un campo solo se viene rispettata una determinata condizione?

Ad es. ho questa select:
SELECT ID, Prezzo FROM Tabella

Vorrei fare qualcosa del tipo:
SELECT ID, CASE (ID) WHEN '5' THEN Prezzo * 2 ELSE Prezzo

ovvero la colonna Prezzo deve venire raddoppiata quando l'ID è uguale a 5.

Grazie per l'aiuto! :)
1.976 messaggi dal 27 luglio 2005
Contributi
salve,
djfdx wrote:
Salve a tutti,
avrei bisogno di una delucidazione:

è possibile avere una SELECT che faccia un'operazione matematica su di un campo solo se viene rispettata una determinata condizione?
Ad es. ho questa select:
SELECT ID, Prezzo FROM Tabella

Vorrei fare qualcosa del tipo:
SELECT ID, CASE (ID) WHEN '5' THEN Prezzo * 2 ELSE Prezzo

ovvero la colonna Prezzo deve venire raddoppiata quando l'ID è uguale a 5.

certo, ed il codice l'hai gia' scritto tu
SET NOCOUNT ON;
USE tempdb;
GO
CREATE TABLE dbo.t (
Id int NOT NULL,
Prezzo decimal (18,4) NOT NULL DEFAULT 50
);
INSERT INTO dbo.t VALUES ( 1, 50 );
INSERT INTO dbo.t VALUES ( 5, 50 );

SELECT ID, CASE (ID) WHEN 5 THEN Prezzo * 2 ELSE Prezzo END AS [Prezzo calcolato]
FROM dbo.t;
GO
DROP TABLE dbo.t;
--<--------
ID Prezzo calcolato
---------
---------------------------------------
1 50.0000
5 100.0000

saluti

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
22 messaggi dal 03 settembre 2008
Fantastico, mi perdevo l'END alla fine del CASE
Grazie!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.