¿Cómo selecciono una columna según la condición?
Tengo una variable llamada @status que configuré antes de esta declaración de selección:
Select
ordr_num as num,
ordr_date as date,
ordr_ship_with as shipwith
From
order
where ordr_num = @ordrNum
Solo quiero seleccionar ordr_ship_with
la columna si @status <> 'Cancelled'
; de lo contrario, quiero seleccionar nulo para el envío. ¿Cómo logro esto?
Aceptado
SELECT ordr_num as num, ordr_date as date,
CASE WHEN @status<>'Cancelled' THEN ordr_ship_with ELSE NULL END as shipwith
FROM order
WHERE ordr_num = @ordrNum
Probar esto
Select
ordr_num as num,
ordr_date as date,
CASE
WHEN @Status <> 'Cancelled' THEN ordr_ship_with
ELSE NULL END
as shipwith
From order
where ordr_num = @ordrNum
Aunque tengo la sensación de que su ESTADO es una columna real en la tabla Orden. En ese caso, haz esto:
Select
ordr_num as num,
ordr_date as date,
CASE
WHEN Status <> 'Cancelled' THEN ordr_ship_with
ELSE NULL END
as shipwith
From order
where ordr_num = @ordrNum
Select
ordr_num as num,
ordr_date as date,
CASE WHEN @status <> 'Cancelled' THEN ordr_ship_with ELSE NULL END as shipwith
From
order where ordr_num = @ordrNum
Caso de uso: http://msdn.microsoft.com/en-us/library/ms181765.aspx