¿Cómo selecciono una columna según la condición?

Resuelto Riz asked hace 15 años • 5 respuestas

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_withla columna si @status <> 'Cancelled'; ​​de lo contrario, quiero seleccionar nulo para el envío. ¿Cómo logro esto?

Riz avatar Sep 02 '09 22:09 Riz
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
Joel Coehoorn avatar Sep 02 '2009 15:09 Joel Coehoorn

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
Raj More avatar Sep 02 '2009 15:09 Raj More
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
gbn avatar Sep 02 '2009 15:09 gbn

Caso de uso: http://msdn.microsoft.com/en-us/library/ms181765.aspx

 avatar Sep 02 '2009 15:09