2016-04-29 17 views
1

Ich habe zwei Spalte in SQLWie kombinieren zwei Spalten in SQL

year month 
2016 4 
2014 5 

jetzt tun, was ich will ist, diese beiden Säulen miteinander zu kombinieren und für den Zeitraum

Ausgabe

year month result 
2016 4  201604 
2014 5  201405 
erhalten

Gibt es Möglichkeiten, dies zu tun?

+4

Spaltendaten Arten? Wenn ganzzahlig, mache 'Jahr * 100 + Monat', wenn das Zeichen 'Jahr + Monat' ist. – jarlh

+0

@jarlh netter Trick mit den Zahlen! –

+0

@jarlh, posten Sie das als Antwort. –

Antwort

8

Wenn die Spaltendatentypen integer sind, tun

select year * 100 + month from tablename 
+0

Das ist cool ... –

+0

Zum besseren Verständnis '(Jahr * 100) + Monat ' –

3

Zuerst müssen Sie CAST sie an VARCHAR, um eine Verkettung zu ermöglichen. Verwenden Sie dann RIGHT für month aufzufüllen den Wert mit 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 
+0

Danke Das funktioniert gut – RedRocket

1

Unter der Annahme, beide Spalten sind numerische Typen:

SELECT year, 
     month, 
     CAST(year as char(4)) + RIGHT('00' + CAST(month as varchar(2)), 2) as result 
FROM YourTable 
+0

gute Antwort, das ist, was ich suche :) – RedRocket

Verwandte Themen