暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SQL_字段处理

lin在路上 2020-08-04
623

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论