簡體   English   中英

一列匯總日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM