sql字符串操作

张开发
2026/4/13 21:32:07 15 分钟阅读

分享文章

sql字符串操作
前言已标注各函数适用数据库未标记者同时支持 SQL Server 与 MySQL目录concat(str1str2...)datalength() 适用于sql serverlen() 适用于sql serverlength() 适用于mysqlchar_length() 适用于mysqlleft(str长度)right(str长度)stuff(str1n长度str2) 适用于sql serverinsert(str1n长度str2) 适用于mysqlsubstring(strn长度)upper() / lower()力扣例题concat(str1str2...)拼接多个字符串为一个字符串注仅传入一个参数时输出参数本身若参数任一为NULL返回NULLdatalength() 适用于sql server算字节数NULL的长度为NULL注sql server中1个中文占2字节len() 适用于sql server算字符数NULL的长度为NULLlength() 适用于mysql算字节数NULL的长度为NULL注在mysql中1个中文占3个字节如 LENGTH(张三)6char_length() 适用于mysql算字符数NULL的长度为NULL如 ’ 张三‘ 的长度为2left(str长度)返回字符串左侧指定长度字符从1开始计算长度参数为NULL返回NULLright(str长度)返回字符串右侧指定长度字符从1开始计算长度参数为NULL返回NULLstuff(str1n长度str2) 适用于sql serverinsert(str1n长度str2) 适用于mysql将str1中从n开始一定长度的字符替换为str2n必须 1否则报错任一参数为NULL返回NULLsubstring(strn长度)返回str从n开始一定长度的字符在mysql中若不输入长度参数则返回 到 字符串结束在sql server中必须输入三个参数参数为NULL返回NULLupper() / lower()返回字符串的大写 / 小写形式任一参数为NULL返回NULL力扣例题表Users------------------------- | Column Name | Type | ------------------------- | user_id | int | | name | varchar | ------------------------- user_id 是该表的主键(具有唯一值的列)。 该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。编写解决方案修复名字使得只有第一个字符是大写的其余都是小写的。返回按user_id排序的结果表。返回结果格式示例如下。输入输出---------------- ---------------- | user_id | name | | user_id | name | ---------------- ---------------- | 1 | aLice | | 1 | Alice | | 2 | bOB | | 2 | Bob | ---------------- ----------------注以下解法适用于 SQL Server解法1SELECT user_id, SUBSTRING(UPPER(name),1,1) SUBSTRING(LOWER(name),2) name FROM Users ORDER BY user_id解法2SELECT user_id, ( LEFT(name,1) RIGHT(name,LEN(name)-1) ) name FROM Users ORDER BY user_id注解法2和3只适用于sql server以解法3为例在mysql中会试图将 LEFT(name,1) 和 RIGHT(name,LENGTH(name)-1) 转换为数字后再进行数学意义上的加法运算而LEFT(name,1) 和 RIGHT(name,LENGTH(name)-1) 不能转换为数字mysql发现无法转换后就会将无法转换的数字转换为0结果就是查询出的name列的值为0解法3SELECT user_id, CONCAT( UPPER(LEFT(name,1)),LOWER(RIGHT(name,LEN(name)-1) )) name FROM Users ORDER BY user_id解法4推荐解法SELECT user_id, STUFF(LOWER(name),1,1,UPPER(LEFT(name,1))) name FROM Users ORDER BY 1 /*order by后跟数字表示按select中第n个元素排序但不推荐这么写可读性差*/

更多文章