SQL查询时会涉及到字段处理,主要分两种情况:新增字段(包括拼接字段和计算字段)、数据处理(文本处理函数、时间日期处理函数、数值处理函数)
1 新增字段
1.1 拼接字段
SELECT
CONCAT(vend_name,'_',vend_country) as vend_title,
vendor.*
FROM
vendor
#在表vendor前新增列vend_title,该列由vend_name、vend_country拼接而成,中间使用符合(_)进行分隔。
#使用CONCAT函数将多个字符串拼接起来
#拼接后的字段名为CONCAT(vend_name,'_',vend_country),为便于阅读使用as设置别名为vend_title
1.2 计算字段
SELECT
prod_id,
quantity,
item_price,
quantity * item_price AS expanded_price
FROM
order_item
#在表order_item中新增列expanded_price。该列的值由列quantity的值与列item_price的值相乘获取
#算术操作符支持加(+)、减(-)、乘(*)、除(/)
2 处理数据
2.1 文本处理函数
SELECT
UPPER(vend_name) AS vend_name_upper,
vendor.*
FROM
vendor
#对表vendor中新增列vend_name_upper,该列由vend_name的值进行小写转大写操作得来
#文本处理操作支持Left(返回串左边指定个数的字符)、Right(返回串右边指定个数的字符)、Length(返回串的长度)、Locate(找出串的子串)、Lower(将串转换为小写)、Upper(将串转换为大写)、LTrim(去掉串左边的空格)、RTrim(去掉串右边的空格)、Soundex(返回串的SOUNDEX值)、SubString(返回子串的字符)
SELECT
cust_name,
cust_contact
FROM
customer
WHERE
SOUNDEX(cust_contact) = SOUNDEX('Jim Jomes')
#Soundex函数可以用来检索出读音相似的值
#根据该语法将能够检索到cust_contact值为Jim Jones的记录。
#Soundex算法说明:1、保留第一个字母,去掉第一个字母之后的所有a,e,i,o,u,y,h,w;2、将剩下的字母(除第一个字符外)按如下规则进行转换(b、f、p、v->1;c、g、j、k、q、s、x、z->2;d、t->3;l->4;m、n->5;r->6);3、相邻重复的数字只保留一个;4、保留3位数字,若不足三位则补0.
#按如上规则Jomes和Jones的Soundex值均为J520,所以能被比中。
2.2 时间日期处理函数
SELECT
cust_id,
order_num,
order_date
FROM
`order`
WHERE
DATE(order_date) = '2012-05-01'
#检索订单信息,该订单的order_date字段的日期部分是'2012-05-01'
#比中记录order_date字段的值为2012-05-01 00:00:00
#时间日期处理函数可以分为如下几类:
#时间提取:Now(获取当前时间)、Data(日期部分提取)、Time(时间部分提取)、Year(年份提取)、Month(月份部分提取)、Day(日期部分提取)、Hour(小时部分提取)、Minute(分钟部分提取)、Second(秒部分提取)
#时间格式化:Date_Format
#时间修改:AddDate、AddTime、Date_Add
#时间比较:DateDiff
2.3 数值处理函数
SELECT
RAND(6),
vendor.*
FROM
vendor
#在表vendor新增一列随机数(种子值为6)字段
#数值处理函数主要包括
#
文章转载自lin在路上,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




