2015-11-18 126 views
-1

有沒有一種方法可以連接兩列不同的功能?有沒有一種方法可以連接具有不同功能的兩列?

從例如,我可以使它看起來像Q3 2015年

enter image description here

SELECT convert(varchar(20), [Evaluation Date],(101)), 
     month([Evaluation Date]), year([Evaluation Date]), 
     case when month([Evaluation Date]) in ('1','2','3') then 'Q1' 
      when month([Evaluation Date]) in ('4','5','6') then 'Q2' 
      when month([Evaluation Date]) in ('7','8','9') then 'Q3' 
      when month([Evaluation Date]) in ('10','11','12') then 'Q4' 
     end as [Month], 
     year([Evaluation Date]) as [Year], 
     DATEADD(MONTH, DATEDIFF(MONTH, 0, [Evaluation Date]), 0) AS MonthYear, 
+0

另外,無論誰低估這個問題,請提供解釋爲什麼下一次 –

+0

@AceTrajkov我沒有低估這個問題,但沒有要求有人必須提供一個理由。 – Siyual

+0

它不一定是一個要求,更多地把它看作是一種常見的禮貌。 如果問題被低估,這意味着缺少某些東西,無論是更多的信息,還是基本的「google it,******」 提供這個理由可以幫助海報和其他人更好地瞭解問題對於他們發佈的下一個問題。 –

回答

1

,那麼最簡單的方法是使用datename()

select ('Q' + datename(quarter, [Evaluation Date]) + ' ' + 
     datename(year, [Evaluation Date]) 
     ) as QYYYY 
+0

這是正確的! – mezzokitestar

+0

不錯,方式更簡潔可讀 –

1

如果你想獲得Q YYYY試試這個

SELECT convert(varchar(20), [Evaluation Date],(101)), 
    month([Evaluation Date]), year([Evaluation Date]), 
    case when month([Evaluation Date]) in ('1','2','3') then 'Q1' 
     when month([Evaluation Date]) in ('4','5','6') then 'Q2' 
     when month([Evaluation Date]) in ('7','8','9') then 'Q3' 
     when month([Evaluation Date]) in ('10','11','12') then 'Q4' 
    end + ' ' + CONVERT(nvarchar, year([Evaluation Date])) 
+0

這是正確的! – mezzokitestar

相關問題