在MySQL中的SELECT 语句中,可使用Concat()函数来拼接两个列,使用RTrim()函数来删除数据右侧多余的空格。
示例1:将vend_name和vend_country两个列值拼接成一个串
SQL语句:SELECT Concat(vend_name,'(',vend_country,')') FROM vendors ORDER BY vend_name;
SQL语句:SELECT Concat(vend_name,'(',RTrim(vend_country),')') FROM vendors ORDER BY vend_name;
SQL语句:SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;
示例2:汇总物品的价格,即单价*订购数量
SQL语句:SELECT prod_id, quantity, item_price quantity*item_price AS expanded_price FROM orderitems WHERE order_num = 2005;
大多数SQL实现支持以下类型的函数:
- 用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数。
- 用于在数值数据熵进行算术操作(如返回绝对值,进行代数运算)的数值函数。
- 用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数。
- 返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
(1) 文本处理函数
RTrim()函数:去除列值右边的空格;
示例:拼接vend_name和vend_country列值,并去除数据中右边的空格
SQL语句:SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') AS vend_title FROM vendors ORDER BY vend_name;
Upper()函数:将文本转换为大写
示例:将vend_name列值全部转换为大写,第一列为原本存储的值,第二列为文本大写转换后的值
SQL语句:SELECT vend_name, Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name;
Soundex()函数:匹配发音类似的值
SQL语句:SELECT cust_name, cust_contact FROM customers WHERE Soundex(cust_contact)=Soundex('Y Lie');
(2) 日期处理函数
SQL语句:SELECT cust_id, order_num FROM orders WHERE Date(order_data)='2005-09-01';
示例:检索出2005年9月的订单记录
SQL语句:SELECT cust_id, order_num FROM orders WHERE Date(order_data) BETWEEN '2005-09-01' AND '2005-09-30';
SQL语句:SELECT cust_id, order_num FROM orders WHERE Year(order_data) = 2005 AND Month(order_data) = 9;
(3) 数值处理函数