2012-03-10 29 views
7

Estoy intentando visualizar somes valores en mi base de datos de resultado, estoy usando el código pero no pueden tener éxito:múltiple sentencias IF en MYSQL

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items 

EDIT: que desea mostrar, por ejemplo, :

If category_code = 'HERR1' 
Display = 1 
else if category_code = 'COLN5' 
Display = 2 
End If 

Si alguien tiene alguna idea, sería de gran aprecio

+0

Bueno, una instrucción select no da como resultado ningún cambio en los datos subyacentes. Necesita usar una instrucción UPDATE en su lugar. –

+0

Lo siento, quise decir mostrar el resultado –

+0

¿Qué errores está obteniendo? ¿Puedes publicar los resultados esperados y reales? –

Respuesta

23

prefiero usar CASE:

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1 
WHEN 'COLN5' THEN 2 
ELSE 'NO' 
END as category_code, item_name, item_quantity 
FROM qa_items 

Pero IF también funcionará: IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

4

es necesario para anidar las sentencias if

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items 

Entonces, el primer caso de un error y el anidado si evaluará

4

Es esto lo que fueron después?

SELECT 
    item_code, 
    CASE category_code 
    WHEN 'HERR1' THEN 1 
    WHEN 'COLN5' THEN 2 
    ELSE 'NO' 
    END AS category_code, 
    item_name, 
    item_quantity 
FROM qa_items 
1

Pruebe lo siguiente

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items 
0

En mi mesa 3 columnas, una es package_price, employee_percentage, reference_customer_id.

Ahora quiero si reference_customer_id> 0 entonces el porcentaje del empleado como comision_ referenciada y si reference_customer_id = 0 entonces comision directa. Probé a continuación manera:

SELECT si (reference_customer_id = 0, suma (((package_price employee_percentage)/100)), 0) como direct_commission, si (reference_customer_id> 0, suma (((package_price employee_percentage)/100)), 0) como la referencia_commission

Cuestiones relacionadas