• 1667. 修复表中的名字


    SQL架构

    表: Users

    +----------------+---------+
    | Column Name    | Type    |
    +----------------+---------+
    | user_id        | int     |
    | name           | varchar |
    +----------------+---------+
    user_id 是该表的主键。
    该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。
    

    编写一个 SQL 查询来修复名字,使得只有第一个字符是大写的,其余都是小写的。

    返回按 user_id 排序的结果表。

    查询结果格式示例如下。

    示例 1:

    输入:
    Users table:
    +---------+-------+
    | user_id | name  |
    +---------+-------+
    | 1       | aLice |
    | 2       | bOB   |
    +---------+-------+
    输出:
    +---------+-------+
    | user_id | name  |
    +---------+-------+
    | 1       | Alice |
    | 2       | Bob   |
    +---------+-------+

    insert函数:

    1. select
    2. # INSERT(str,pos,len,newstr) insert(lower(name) ,1,1,upper(left(name,1))) 在指定位置插入指定长度的字符串
    3. user_id,insert(lower(name) ,1,1,upper(left(name,1))) name
    4. from
    5. Users
    6. order by user_id

    substring   和 concat:

    1. select user_id,
    2. concat (upper(left(name, 1)), lower(substring(name, 2))) as name #substring 从指定位置开始显示字符串
    3. from users
    4. order by user_id

    right()   和  lengh():

    1. SELECT user_id AS 'user_id' ,
    2. CONCAT(
    3. UPPER(LEFT(name,1)),
    4. LOWER (RIGHT(name,length(name)-1))) AS 'name' #right() 显示从右面数规定长度的字符串 lengh()字符串长度
    5. FROM Users
    6. ORDER BY user_id

    笔记:

    SUBSTRING(str,pos), substring(str from pos), substring(str,pos,len), substring(str from pos for len)

    不带 len 参数的形式从字符串 str 返回从位置 pos 开始的子字符串。具有 len 参数的表单从位置 pos 开始,返回一个长于字符串 str 的子字符串 len 字符。使用的表单是标准 SQL 语法。也可以对 pos 使用负值。在本例中,子字符串的开头是字符串末尾的 pos 字符,而不是开头。负值可用于此函数的任何形式的 pos。pos 的值 0 返回空字符串。FROM

    对于所有形式的 SUBSTRING(),字符串中要从中提取子字符串的第一个字符的位置视为 。1


    mysql> SELECT SUBSTRING('Quadratically',5);
            -> 'ratically'
    mysql> SELECT SUBSTRING('foobarbar' FROM 4);
            -> 'barbar'
    mysql> SELECT SUBSTRING('Quadratically',5,6);
            -> 'ratica'
    mysql> SELECT SUBSTRING('Sakila', -3);
            -> 'ila'
    mysql> SELECT SUBSTRING('Sakila', -5, 3);
            -> 'aki'
    mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
            -> 'ki'
                    
                    
                    
                    INSERT(str,pos,len,newstr)

    返回字符串 str,子字符串从位置 pos 开始,长度为 len 字符,由字符串 newstr 替换。如果 pos 不在字符串的长度范围内,则返回原始字符串。如果 len 不在字符串其余部分的长度内,则从位置 pos 替换字符串的其余部分。如果任何参数为 .,则返回。NULLNULL

    mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
            -> 'QuWhattic'
    mysql> SELECT INSERT('Quadratic', -1, 4, 'What');
            -> 'Quadratic'
    mysql> SELECT INSERT('Quadratic', 3, 100, 'What');
            -> 'QuWhat'
    此函数是多字节安全的。

    INSTR(str,substr)

    返回字符串 str 中第一次出现的子字符串子字符串的位置。这与 LOCATE() 的双参数形式相同,只是参数的顺序颠倒了。
    mysql> SELECT INSTR('foobarbar', 'bar');
            -> 4
    mysql> SELECT INSTR('xbar', 'foobar');
            -> 0

  • 相关阅读:
    Android修行手册 - TextureView和SurfaceView说明
    【通俗易懂】git原理、安装及连接gitlab,github
    14天学习训练营导师课程-Pygame学习笔记-Part1(环境准备)
    【C语言】自定义类型:结构体【结构体内存具详细】,枚举,联合
    (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
    Stm32_标准库_9_TIM
    被职场PUA了...
    初学python的感受
    C# ?问号运算符
    SQL教育行业案例:学员续费如何分析?(case when、窗口函数)
  • 原文地址:https://blog.csdn.net/m0_69157845/article/details/125534715