暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

​记一次,SQL 某数据列转首字母大写

SQL数据库运维 2023-05-10
1402

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!

最近搞测试数据的时候,输入英文的名字或者拼音码的时候,老是习惯性的全部小写,但是作为有点强迫症的自己一个一个更改就又太麻烦,所以就先添加数据,之后在批量进行修改,不知道有没有其他的小伙伴有这种困扰吗?

下面在SQL Server数据库环境下,简单给大家讲解下怎么将某个纯小写英文数据列更改为首字母大写?算是一个小技巧的,指不定哪天就用到了,有需要的记得先点赞、收藏喔

准备测试脚本如下:
    --创建Student_01数据表
    CREATE TABLE Student_01 (
    ID INT,
    StudentName varchar(50),
    StudentClassID INT
    )
    --插入Student_01表数据
    INSERT INTO Student_01 VALUES (1,'careyson',1),(2,'tony',2),(3,'jack',3),(4,'nancy',2),(5,'peter',1)


    --查询表数据
    SELECT * FROM Student_01
    查询结果如下:

    解析问题:
    首先需要定位到首字母,然后将其变成大写字母,将会使用STUFF函数,意思是:用于替换字符串中的子字符串。STUFF语法如下:
      STUFF(string,start,length,substring)
      • string - 作为子字符串替换目标的字符串表达式。

      • start - 替换的起点,指定为正整数。从字符串开头开始的字符数,从 1 开始计数。允许的值为 0 到字符串的长度。要追加字符,请指定 0 的开头和 0 的长度。空字符串或非数字值被视为 0。

      • length - 要替换的字符数,指定为正整数。要插入字符,请将长度指定为 0。要在开始后替换所有字符,请指定大于现有字符数的长度。空字符串或非数字值被视为 0。

      • substring - 一个字符串表达式,用于替换由其起始点和长度标识的子字符串。可以比它替换的子字符串更长或更短。可以是空字符串。


        --简单例子
        select STUFF('hello',1,1,'H') as 替换字符  -- 替换第一个字符

        其次,会用到转换大写函数UPPER及截取字符串SUBSTRING,结合STUFF函数构造出一个SQL查询,显示目标列
          SELECT STUFF( StudentName,1,1,UPPER(SUBSTRING(StudentName,1,1))) AS 新的首字母大写列
          FROM Student_01
          查询结果如下:

          现在我们已经看到可以查询出首字母大写的列信息,最后一步,使用UPDATE进行更新目标列,实现需求当然如果仅需要更改某几行数据,记得要添加WHERE 条件)
            UPDATE Student_01 SET StudentName=STUFF( StudentName,1,1,UPPER(SUBSTRING(StudentName,1,1)))
            执行语句,结果查询,首字母已经大写

            写在最后:当然,这个方法只是解决一些小的数据表的特殊需求,如果碰到比较大的数据,可能就不太合适了,如果小伙伴们,有更好的方法,欢迎交流,一起学习,假如有看不懂或者记不住的小伙伴,也没关系,收藏文章,遇到直接拿来用,直接复制替换更改成你需要的就行!

            点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。


            动动小手点击加关注呦☟☟☟

            文章转载自SQL数据库运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论