IF / CASE语句SQL

时间:2016-05-09 18:02:24

标签: sql plsql

我不确定如何编码。以下是我在IF语句中需要的场景。这应该分为两个不同的IF语句,还是可以使用CASE?我是编程的新手,所以任何帮助将不胜感激。

Scenerios:如果selling_flag ='N'并且calculate_flag ='Y'那么返回list_price。如果selling_flag ='Y'和calculate_flag ='Y'那么返回customer_price。 IF calculation_flag ='N'THEN返回unit_selling

目前我有:

IF selling_flag = 'N' AND calculation_flag = 'Y' THEN
  return list_price;
ELSE  
  return customer_price;      
END IF; 

IF calculation_flag = 'N' THEN
return selling_price;
END IF; 
END;

谢谢。

2 个答案:

答案 0 :(得分:1)

你可以这样做Case Statements PLSQL

CASE 
    WHEN selling_flag = 'N' AND calculation_flag = 'Y' THEN list_price;
    WHEN selling_flag = 'Y' AND calculation_flag = 'Y' THEN customer_price;
    ELSE selling_price;
END CASE;

如果您有两个条件,如果两个条件都不满足,则默认为selling_price。

答案 1 :(得分:1)

如果这是PL / SQL代码,通常使用elsif

IF selling_flag = 'N' AND calculation_flag = 'Y' THEN
  return list_price;
ELSIF selling_flag = 'Y' AND calculation_flag = 'Y'
  return customer_price;      
ELSIF calculation_flag = 'N' THEN
  return selling_price;
END IF; 

这也可以写成:

IF calculation_flag = 'Y' THEN
  IF selling_flag = 'N' THEN
    return list_price;
  ELSE 
    return customer_price;
  END IF;     
ELSE
  return selling_price;
END IF;