zoukankan      html  css  js  c++  java
  • 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值,则说明有第二个空格,则有第三个名字。

  • 相关阅读:
    UWP 视觉状态管理 VisualStateManager
    RainbowEight
    Thread.Sleep在WinRT中---uwp应用
    fsasefa
    那年坑系列之好多坑_by二卷
    deep Learning Introduction_1_by二卷
    笔记本无线联网时VirtualBox的联网问题_by二卷
    Linux入门篇之目录结构_by二卷_待补充
    Python核心编程Ⅱ章3Python基础_by二卷
    数据挖掘导论章3探索数据_by二卷
  • 原文地址:https://www.cnblogs.com/zhaochunyi/p/10498274.html
Copyright © 2011-2022 走看看