我在SQL两个列如何两列组合在SQL
year month
2016 4
2014 5
我想现在要做的就是这两列组合在一起,并得到时期
输出
year month result
2016 4 201604
2014 5 201405
有没有办法做到这一点?
我在SQL两个列如何两列组合在SQL
year month
2016 4
2014 5
我想现在要做的就是这两列组合在一起,并得到时期
输出
year month result
2016 4 201604
2014 5 201405
有没有办法做到这一点?
如果列的数据类型是整数,做
select year * 100 + month from tablename
这很酷... –
为了更好地理解'(年* 100)+月' –
首先,您需要将它们CAST
改为VARCHAR
以允许连接。然后使用RIGHT
为month
到垫0
值:
WITH Tbl AS(
SELECT 2016 AS [year], 4 AS [month] UNION ALL
SELECT 2014, 5
)
SELECT *,
CAST([year] AS VARCHAR(4)) + RIGHT('0' + CAST([month] AS VARCHAR(2)), 2)
FROM Tbl
谢谢这效果很好 – RedRocket
假设两列是数值类型:
SELECT year,
month,
CAST(year as char(4)) + RIGHT('00' + CAST(month as varchar(2)), 2) as result
FROM YourTable
很好的答案,这就是我正在寻找:) – RedRocket
列数据类型?如果是整数,则执行'year * 100 + month',如果字符做'年+月'。 – jarlh
@jarlh不错的把戏与数字! –
@jarlh,发布的答案。 –