2010-04-15 3 views
1

Notre base de données contient deux variables appelées OB et B2B_OB. Il y a des codes EP et chaque EP peuvent avoir l'un des 4 combinaisons suivantes:Comment combiner des valeurs de colonne spécifiques dans une instruction SQL

EP OB B2B_OB 
--- -- ------ 
3 X 
7  X 
11 
14 X X 

Ce que je veux faire est de combiner les X dans la liste tiré par les cheveux pour que je puisse avoir une ou valeur B pour un seul EP . Mes conditions sont les suivantes:

IF (OB IS NULL AND B2B_OB IS NULL) THEN TYPE = A 
IF (OB IS NOT NULL OR B2B_OB IS NOT NULL) THEN TYPE = B 

La liste que je veux chercher est comme celui-ci:

EP TYPE 
--- ---- 
3 B 
7 B 
11 A 
14 B 

Comment puis-je faire dans ma requête? TIA.

Répondre

4

(EDIT: corrigée ET à OU)
est ici une solution (syntaxe testée sur Postgres, mais de ce que je read il devrait être le même)

select ep, 
    case 
    when ob is null and b2b_ob is null then a 
    when ob is not null or b2b_ob is not null then b 
    else null 
    end as type 
from table; 

Note: sinon NULL est redondant mais voulait seulement souligner le cas par défaut autrement.

+0

Merci beaucoup ... –

+1

On dirait que la deuxième ligne de l'affaire devrait être lorsque ob n'est pas nulle ou b2b_ob est non nul alors b – AndyDan

+0

@AndyDan, vous avez raison, réponse mis à jour. – Unreason

Questions connexes