Oracle_SQL 之条件表达式
发布时间:2020-12-12 14:41:11 所属栏目:百科 来源:网络整理
导读:前言 在Oracle中,我们有两种方式可以实现 IF-THEN-ELSE 的逻辑:CASE 语句 或者 DECODE 函数 相比较来说DECODE 函数会更加的简洁。 我们在oracle数据库中建立一个user_info表: CREATE TABLE user_info(user_id NUMBER ( 2 ) primary key ,user_name VARCHA
前言在Oracle中,我们有两种方式可以实现 我们在oracle数据库中建立一个user_info表: CREATE TABLE user_info(user_id NUMBER(2) primary key,user_name VARCHAR2(14),user_age NUMBER(4),user_birthday DATE);
我们可以看到其中有 用户ID主键,用户姓名,用户年龄,以及用户生日。 CASE 语句[ 第一题 ] SELECT u.user_id,u.user_name,CASE WHEN u.user_age < 20 THEN 'A' WHEN u.user_age >= 20 AND u.user_age < 30 THEN 'B' ELSE 'C' END age_type FROM user_info u;
[ 第二题 ] SELECT u.user_id,CASE u.user_name WHEN '张三' THEN '主管' WHEN '李四' THEN '经理' ELSE '员工' END user_type FROM user_info u;
DECODE 函数我们将上面的的两题使用DECODE 函数再写一遍,代码如下: [ 第一题 ] SELECT u.user_id,u.user_name,u.user_age,decode(trunc(u.user_age/10),1,'A',2,'B','C') age_type,u.user_birthday
FROM user_info u;
[ 第二题 ] SELECT u.user_id,u.user_age,decode(u.user_name,'张三','主管','李四','经理','员工') user_type,u.user_birthday FROM user_info u;
注:如果只是判断两个数的大小,我们可以使用
如题: SELECT u.user_id,decode(sign(u.user_age-25),-1,u.user_birthday
FROM user_info u; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |