字符串拼接函数 || 将employees表的所有员工的last_name和first_name拼接起来作为Name

将employees表的所有员工的last_name和first_name拼接起来作为Name

http://www.nowcoder.com/practice/6744b90bbdde40209f8ecaac0b0516fe

1 题解Code

select
concat_ws(' ',last_name,first_name)as name 
from employees

2 常见字符串拼接函数

2.1 cancat()

函数形式

concat (str1,str2,...)

返回结果为连接所有参数生成的字符串,如果有任何一个参数为NULL,则返回值为NULL

2.2 cancat_ws()

函数形式

concat_ws (seperator,str1,str2,...)          

ws(with seperator) seperator为连接各个字符串的分隔符,分隔符可以使一个字符串,也可以是其他参数,当需要将多个字符串用同一分隔符连接时,concat_ws()更为适用

Note:

如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。*

Use Case

concat_ws('-','Google','Baidu','Taobao')
-- 输出结果: 'Google-Baidu-Taobao'

等价于:
concat('Google','-','Baidu','-','Taobao')

2.3 || 拼接

Oracle中的concat函数只能拼接两个字符串,多个字符串的拼接需要使用||

函数性质

str1||str2...

Use Case

select 'wk '||retail_week as retail_week

--输出结果:'wk 1' 'wk 2'...

2.4 group concat()

3 拼接过程中的格式转换

部分字段在拼接的过程中会涉及到格式的转换,SQL中常用的格式转换函数为 CAST函数与CONVERT函数

3.1 CAST函数

函数形式

cast(expression as data_type)
  • expression:待转换数据类型的有效表达式
  • as: 分隔符
  • data_type:目标系统所提供的数据类型,不能使用用户定义的数据类型

可转换的数据类型

  • 二进制 binary
  • 字符型 char() / varchar()
  • 时间 TIME
  • 日期 DATE
  • 日期时间型 DATETIME
  • 时间戳 TIMESTAMP
  • 浮点数 FLOAT
  • 精度可变的浮点数 DECIMAL(m,n) m:总位数 n:小数点后位数
  • 布尔值 BOOLEAN
  • 整数值 BIGINT/INTh/MEDIUMINT/SMALLINT/TINYINT (数值范围由大到小)

3.2 Convert 函数

函数形式

CONVERT() 函数常作为把日期转换为新数据类型的通用函数,通过style参数的设置可以用不同的格式显示时间/日期,也可转换其他数据

CONVERT(data_type(length),expression,style)
  • data_type(length):目标数据类型(可规定长度)
  • expression:需要转换的值
  • style:规定的日期/时间的展示形式 (转换时间可用)

Use Case

SELECT CONVERT(INT, 25.65);
-- 输出:25
       
SELECT CONVERT(VARCHAR(19),GETDATE())
-- 输出:'Apr 15 2021' 7:59AM 

SELECT CONVERT(VARCHAR(10),GETDATE(),10)
-- 输出:'04-15-21' style=10 对应'mm-dd-yy'
全部评论

相关推荐

马上要带我人生中的第一个实习生了,想问问大家都喜欢什么的mentor?好让我有个努力的目标
拒绝996的劳伦斯很勇敢:看得见目标且护犊子的 具体就是明确告诉组员要干什么,然后当别的组甩dirty work时能护的组自家新人
点赞 评论 收藏
分享
代码飞升:简历差不多情况下你的学历已经加分了,海投就行,加油,不要追求尽善尽美
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务