在SQL中以特定格式连接两列

时间:2017-04-27 08:22:38

标签: sql sql-server concatenation

我的查询的下一行

concat(fiscalyear,fiscalweek) as yearweek,

2016年第1周显示为20161,但是我需要它显示为201601,第10周看起来像201610,

如何格式化财政周列?

请不要把我击倒我是非常新的

4 个答案:

答案 0 :(得分:1)

更新了JaydipJ的答案。 由于两列都属于Integer类型,因此您必须同时使用Varchar数据类型。

更新的答案应该像

SELECT convert(varchar(15),fiscalyear)+''+RIGHT('0'+convert(varchar(15),fiscalweek),2) as yearweek

答案 1 :(得分:0)

如果您使用的是SQL Server,那么 RIGHT 函数可能有助于获得所需的结果

SELECT fiscalyear+''+RIGHT('0'+fiscalweek,2) as yearweek,

答案 2 :(得分:0)

如果您使用的是Oracle,可以试试这个:

select case when fiscalweek between 1 and 9 then concat(fiscalyear,'0'||fiscalweek) else concat(fiscalyear,fiscalweek) end from yourTableName

如果statmemt我正在检查财政周是否是一位数字并且基于使用concat()函数的那个​​,构建输出。

答案 3 :(得分:0)

如果财政周列已经是一个字符串,JaydipJ解决方案将起作用。否则,您可以尝试以下方法来获得结果:

SELECT  concat(fiscalyear, RIGHT('0' + cast(fiscalweek as varchar(2)),2))as yearweek ,