ORACLE和MySQL的拼接查询
1 ORACLE拼接查询
-- 可以拼接多个参数
select tm.PASSWORD||tm.NAME from TEST_MR tm where tm.ID = 1
-- 只能拼接两个参数
select concat(tm.NAME,tm.PASSWORD) from TEST_MR tm where tm.ID=1;
2 MySQL的拼接查询
-- 不带有拼接符号
select concat(st.sex,st.name)from student st
-- 带有拼接符号
select concat_ws(',',st.name,st.sex) from student st;
3 注意事项
-- ORACLE的拼接查询中使用concat函数有一个局限性就是只能拼接两个参数,想要多个嵌套可以使用如下方式:
select concat(tm.NAME,concat(tm.PASSWORD,tm.ID)) from TEST_MR tm where tm.ID=1;
-- Mysql的拼接查询性对于比较灵活,但是当使用concat拼接查询时遇到为null的字段返回结果就会是null
select concat(st.sex,null,st.name)from student st;
-- concat_ws的拼接查询,如果拼接符参数(第一个参数)为null 返回结果也是null
select concat_ws(null,st.name,st.sex) from student st;
-- 针对于为null的问题我们可以使用IFNULL()函数来解决问题:
select concat_ws(ifnull(null,','),st.name,st.sex) from student st;
select concat(st.sex,ifnull(null,'-'),st.name)from student st;
4 总结
这两个其实是很常用的函数,在后台查询数据的时候往往需要将查询的数据进行拼接;
时间:2020-11-08
测试工具:DataGrip