SQL语句的不常用方法记录

CONCAT():将多个列的值合成一个列,中间可以加其他字符串。
例子:SELECT CONCAT(TRIM(m.id), "aaa ", TRIM(m.allprice)) AS concat_col
FROM account m ;


AVG():AVG方法是常用的,但是注意AVG() 会忽略 NULL 行,而且AVG()可以和DISTINCT 一起使用,效果是汇总函数值汇总不同的值。
例子:SELECT AVG(DISTINCT aa.proprice) AS avg_col FROM account_detail aa;
例如account_detail 表的proprice列共有10行数据,其中九个的值是50,和一个40,那么AVG(DISTINCT aa.proprice)计算的结果是50 和 40 的平均值 45 ,而不是所有行的平均值(9*50+40)/10 = 49。


SOUNDEX():SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。soundex考虑了类似的发音字符和音节,使得对字符串进行发音比较而不是字母比较。
这个方法感觉非常玄幻,从定义上看,查询时是做的字符串的发音比较,尝试了几个发音相近的英文单词,结果如下:brake能找到break,two可以找到too,但是beach找不到bitch,虽然这两个单词只有长短音的区别。还有bow找不到bough。还试了试汉字,比如人名“张三”,使用“张撒”和“张桑”,都可以查到张三的结果,但是“章三”却是查不到的。
个人理解,感觉这个方法其实是做的是多个模糊查询,而且不同点越往后越容易匹配到。

例子:SELECT * FROM member WHERE SOUNDEX(membername) = SOUNDEX(‘张撒’),id本来是int类型的,用‘34’ 去查询ID仍然可以查询到结果。


还有一堆关于日期的函数,没啥说的,截个图记录下就好。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值