处理字符串时,利用字符型函数的嵌套组合是非常有效的,试分析一道考题:

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值,则说明有第二个空格,则有第三个名字。

最新文章

  1. (转)Aspone.Cells设置Cell数据格式 Setting Display Formats of Numbers and Dates
  2. PhP访问mysql数据库的基本方式
  3. Play!framework 项目部署到Tomcat
  4. Android 获取手机联系人信息
  5. Swift中的协议
  6. Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析
  7. 20160121--Spring
  8. 用Node.JS+MongoDB搭建个人博客(成品展示)
  9. Volley图片加载并加入缓存处理(转自http://blog.csdn.net/viewhandkownhealth/article/details/50957024)
  10. 学习笔记—XML
  11. 《NFC开发实战详解》笔记
  12. Daily Scrum 12.20
  13. 如何启用小米手机5c的ROOT权限
  14. 在线自动创建springboot工程
  15. LoadRunner 技巧之 IP欺骗 (推荐)
  16. 阿里云CentOS 7服务器挂载数据盘
  17. 移动web适配利器-rem
  18. 【BZOJ】1016: [JSOI2008]最小生成树计数(kruskal+特殊的技巧)
  19. recvfrom WSAEFAULT 10014 的错误记录
  20. json对象字符串互转

热门文章

  1. Javaweb查询客户&amp;分页部分代码
  2. 润乾报表html代码填报
  3. Vue 框架-04-计算属性
  4. 让索引包含null值的两种方法
  5. Object 类型
  6. java笔记--线程的插队行为
  7. Sql Server中的谓词和运算符
  8. 使用eclipse遇到的unable to install breakpoint的问题
  9. 官方推荐的MySQL参数设置值
  10. Allure 安装及使用