暂跳过一部分正则表达式
10 创建计算字段(函数)
使用Concat拼接字段
select CONCAT(age_guess_up,'-',age_guess_down)
from yc_customerProfileGuessInfo
ORDER BY Age_Guess_DOWN
LIMIT 1000
使用RTrim()去除字段右侧多余空格
select CONCAT(Rtrim(age_guess_up),'-',age_guess_down)
执行算术计算
select CONCAT(age_guess_up,'-',age_guess_down),age_guess_down-Age_Guess_UP as age_range
from yc_customerProfileGuessInfo
ORDER BY Age_Guess_DOWN
LIMIT 1000
算术计算结果
补充:
1.concat, 在其它数据库中可能是| |,或是+;mysql中是concat;
2.可以省略from 语句进行计算测试,如select 2*3,直接返回6;
3.+-*/ 可直接使用,now()可返回当前日期时间;
11 使用数据处理函数
Sql 语句的通用性要大于函数,部分函数的可移植性弱——为了通用性,通常不去使用特殊实现的功能,若需使用,要做好备注。
Sql 支持的函数:
- 用于处理文本串
- 用于在数值数据上进行算术计算
- 用于处理日期和时间值并从这些值中提取特定成分
- 返回DBMS正使用的特殊信息对应的系统函数
11.1 文本处理函数
用upper()将文本转换为大写
select UPPER(TradeNick) as tnick_upcase,age_guess_down-Age_Guess_UP as age_range
from yc_customerProfileGuessInfo
ORDER BY tnick_upcase
LIMIT 1000
其它常用文本处理函数
- Left() 返回串左边的字符
- Length() 返回串的长度
- Locate() 找出串的一个子串
- Lower()
- Ltrim()
- Right()
- Rtrim()
- Soundex() 返回串的soundex值,即语音表示的值,其考虑发音字符和音节;
- SubString()
11.2 日期和时间处理函数
一般情况下,(链接数据库的)应用程序不直接使用所存储的日期时间格式,而通常使用函数来读取、统计、处理这些存储的日期和时间,故这些函数比较重要。
日期格式用于where语句筛选
select UPPER(TradeNick) as tnick_upcase,age_guess_down-Age_Guess_UP as age_range
from yc_customerProfileGuessInfo
where NextPurchaseTime BETWEEN '2017-11-11' and '2017-11-30'
…
where YEAR(NextPurchaseTime) = 2017 and MONTH(NextPurchaseTime) = 11
11.3 数值处理函数
主要是代数、三解或几何运算(非聚集类函数)
下篇看聚集类(如sum\count等函数)、分组统计、子查询。