[英]Aggregating date in one column
為了進行報告,我需要顯示表中的數據:
table A (column1, column2, date1, date2, date3,...,dateN)
我的查詢需要在用#分隔的一列中顯示所有日期。
(YYYY-MM-DD# YYYY-MM-DD#..)
但是問題在於日期列的數量不是固定的,因為產品之間的日期可以不同。
任何想法 ?
該語句適用於postgresql,但是您可以替換||
我認為,對於sql-server,用+
可以,只要嘗試一下就可以了,其余的應該可以弄清楚。
||
是postgres中的連接符號,或者您也可以使用可用的連接功能。
SELECT column1 || CASE WHEN column2 IS NOT NULL THEN '#' || column2 ELSE '' END || ... FROM tablehere
希望能幫助到你!
考慮之后,我想更改答案。 也許輕一點
Declare @YourTable table (Column1 int,Column2 int,date1 date,date2 date,date3 date)
Insert Into @YourTable values
(1,25,'2016-01-15','2016-03-22',null),
(2,50,'2016-04-15','2016-07-29','2016-09-30')
Select Column1
,Column2
,Dates=Replace(Replace((
Select x=format(date1,'yyyy-MM-dd# ')
,x=format(date2,'yyyy-MM-dd# ')
,x=format(date3,'yyyy-MM-dd# ')
--x=format(dateNN,'yyyy-MM-dd# ')
For XML Path('')
) ,'<x>',''),'</x>','')
From @YourTable
退貨
Column1 Column2 Dates
1 25 2016-01-15# 2016-03-22#
2 50 2016-04-15# 2016-07-29# 2016-09-30#
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.