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) 向下取整
三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-04-02 jmeter测试结果分析及改进方案
2020-04-02 jmeter函数使用方法
2020-04-02 解决nginx大量出现报错类型为:13:permission denied (403 forbidden)的四种方法
2020-04-02 Jmeter + selenium + ant 接口自动化并生成报告
2020-04-02 jmeter分布式并发操作步骤