SQL 练习一 字符型函数
处理字符串时,利用字符型函数的嵌套组合是非常有效的,试分析一道考题:
create table customers(cust_name varchar2(20));
insert into customers values('lex de hann');
insert into customers values('renske ladwig');
insert into customers values('jose manuel urman');
insert into customers values('joson malin');
select * from customers;
cust_name
--------------------
lex de hann
renske ladwig
jose manuel urman
joson malin
一共四条记录,客户有两个名的,也有三个名的,现在想列出仅有三个名的客户,且第一个名字用*号略去
答案之一:
select lpad(substr(cust_name,instr(cust_name,' ')),length(cust_name),'*') "cust name"
from customers
where instr(cust_name,' ',1,2)<>0;
cust name
------------------------------------------------------------------------------------------------------------------------
*** de hann
**** manuel urman
分析:
先用instr(cust_name,' ')找出第一个空格的位置,
然后,substr(cust_name,instr(cust_name,' '))从第一个空格开始往后截取字符串到末尾,结果是第一个空格以后所有的字符,
最后,lpad(substr(cust_name,instr(cust_name,' ')),length(cust_name),'*')用lpad左填充到cust_name原来的长度,不足的部分用*填充,也就是将第一个空格前的位置,用*填充。
where后过滤是否有三个名字,instr(cust_name, ' ',1,2)从第一个位置,从左往右,查找第二次出现的空格,如果返回非0值,则说明有第二个空格,则有第三个名字。
上一篇: ASP让url的中文显示为编码
下一篇: SQL Server作业报错特殊案例
推荐阅读
-
String练习二:一个字符串在另一个字符串中出现的次数
-
SQL语句练习实例之一——找出最近的两次晋升日期与工资额
-
SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)
-
Sql学习第一天——SQL 练习题(建表/sql语句)
-
SQL语句 一个简单的字符串分割函数
-
SQL语句练习实例之一——找出最近的两次晋升日期与工资额
-
SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)
-
SQL Server中将多行数据拼接为一行数据(一个字符串)
-
SQL Server把某个字段的数据用一条语句转换成字符串
-
Sql学习第一天——SQL 练习题(建表/sql语句)