一、数据准备
CREATE TABLE stu(
id INT PRIMARY KEY,
stuname VARCHAR(10),
sex int,
age INT,
money VARCHAR(10) -- 存款
);
INSERT INTO stu VALUES (1,'张三',1,18,'-18');
INSERT INTO stu VALUES(2,'李四',0,20,'25');
INSERT INTO stu VALUES(3,'王五',1,18,'0');
INSERT INTO stu VALUES(4,'钱六',0,18,'-10');
INSERT INTO stu VALUES(5,'小明',1,18,'12');
INSERT INTO stu VALUES(6,null,1,18,'12');
commit;
------ 数据展示
二、函数介绍
1、replace(str,str1,str0)
替换,将str字段中的str1字段转化为str0字段。
-- 查询学生姓名,存款 存款负债时按照富有存款显示
select stuname,replace(money,'-','') as money from stu;
------ 数据展示
2、decode(字段或字段的运算,值1,值2,值3)
运算输出,当字段或字段的运算等于值1时,返回值2,否则返回值3。
-- 查询学生姓名,性别 性别1为男,0为女
select stuname,decode(sex,1,'男','女') as sex from stu;
------ 数据展示
3、sign(字段或字段的运算)
当字段或字段的运算结果为0时返回0;为正数时返回1;为负数时返回-1。
-- 查询学生姓名及存款 用-1,0,1分别表示存款的状态(负债,无,富有)
select stuname,sign(money) as money from stu;
------ 数据展示
4、nvl(str1,str2)
如果str1为空时,显示第str2;如果不为空,显示str1。
-- 查询学生姓名,没有录入姓名的显示无
select nvl(stuname,'无') as 姓名 from stu;
------ 数据展示
---------------------------------------持续更新,欢迎大家补充--------------------------------------------------------