zoukankan      html  css  js  c++  java
  • MySQL学习--标量函数之字符串函数

    --标量函数字符串函数
    
    --CHARACTER_LENGTH()
    返回其参数中的字符数。
    --LENGTH()
    返回字符串的长度(以字节为单位)(而不是字符数)。
    
    
    SELECT STREET,
                CHAR_LENGTH(STREET) len1,
                if( CHAR_LENGTH(STREET) > 10,
                CONCAT(LEFT(STREET,10),'...'),STREET) STREET2
    from PLAYERS;
    
    -- COALESCE():如果LEAGUENO不是空值,就返回LEAGUENO;如果LEAGUENO是空值,1就是第一个不为空值的参数,等同于如LEAGUENO为NULL时用参数1代替,类似于IF-THEN-ELSE语句  
    SELECT INITIALS,NAME,COALESCE(LEAGUENO,'1') AS LEAGUENO
    FROM PLAYERS;
    -- 等同于以下语句
    IF LEAGUENO IS NULL THEN
       RETURN '1'
    ELSE 
       RETURN LEAGUENO
    ENDIF;
    
    -- CAST(expr AS type):转换数据类型
    SELECT CAST('2021-04-02' AS DATE);   //2021-04-02;
    
    -- CONCAT(str1,str2,...):用来把三个字符值连接起来
    SELECT INITIALS,NAME,
           CONCAT(LEFT(INITIALS,1),'.',NAME) as full_name
    from PLAYERS;                -- R.Everett
    
    SELECT CONCAT('I','am','learning','SQL') AS CONCAT;     -- IamlearningSQL
    SELECT CONCAT_WS('-','I','am','learning','SQL');       -- I-am-learning-SQL
    
    -- LEFT(str,len)返回字符串的前n个字符
    SELECT `NAME`,left(NAME,1) AS n
    FROM PLAYERS;


    -- <>表示不等于
    SELECT e.emp_no, m.emp_no
    FROM dept_emp e
    JOIN dept_manager m
    ON e.dept_no = m.dept_no
    WHERE e.emp_no <> m.emp_no
    AND m.to_date = '9999-01-01';
    
    -- mod(emp_no,2)=1    MOD函数:求余数,结果为0则为偶数,结果为1则为奇数
    select *
    from employees
    where mod(emp_no,2)=1 and last_name!='Mary'
    order by hire_date desc;
    
    
    -- LIMIT:强制返回指定记录数,可接受一个或两个参数,如果是两个参数,第一个是指偏移量,初始为0,第三个则为2,    第二个参数返回记录行的最大数目,( LIMIT 2,1 )    指仅返回第三行的一个数                
    SELECT PLAYERNO
    from PLAYERS
    ORDER BY PLAYERNO DESC
    LIMIT 2,1;
    
    -- GROUP BY + HAVING 分组后再筛选出大于15的数据
    select emp_no,count(*) as t
    from salaries
    group by emp_no
    having t > 15;
    -- SUBSTR(str,pos,len)、SUBSTRING(str FROM pos FOR len)   :注意,索引从1开始
    ##截取从指定索引处后面所有字符
    select SUBSTR('今天阳光真好',4) out_put;      --光真好
    
    ##截取从指定索引处指定字符长度的字符
    SELECT SUBSTR('今天阳光真好',1,4) out_put;    --今天阳光
    
    ##案例:姓名中首字符大写,其它字符小写然后用_拼接,显示出来
    SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) out_put 
    from employees;  
    
    -- INSTR(str,substr) 返回子串第一次出现的索引,如果找不到返回0
    SELECT INSTR('今天阳光真好','阳光') AS out_put;   -- 3
    
    -- TRIM([remstr FROM] str) 首尾去除空格或首尾去除指定字符
    SELECT LENGTH(TRIM('    今天阳光真好      ')) AS out_put;    -- 18
    SELECT TRIM('a' from 'aaaaaaaa今天阳光真好aaaaaaaaaaaaaaaaa') AS out_put;     -- 把字符串的a去掉,返回今天阳光真好
    
    -- LPAD(str,len,padstr) 用指定的字符实现左填充指定长度
    SELECT LPAD('今天阳光真好',10,'*');
    
    /*
    -- 数学函数 
     */  
    -- ROUND(X,D):四舍五入
    SELECT ROUND(1.55);    -- 2
    SELECT ROUND(1.567,2);    --1,57
    
    -- CEIL(X) 向上取整,返回>=该参数的最小整数
    -- FLOOR(X) 向下取整  
    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    初识ES6
    初识NODE
    AJAX详解
    PHP 文件与目录操作函数总结
    PHP封装一个通用好用的文件上传处理类
    PHP基础之 错误处理 及 异常处理
    PHP基础OOP(二) 多态
    PHP基础之 重载 的实现方式
    CCS3的过渡、变换、动画以及响应式布局、弹性布局
    CSS之盒子模型(由浅到深的理解)
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/14611386.html
Copyright © 2011-2022 走看看