SQL Server 2008 R2:将日期显示为逗号分隔列

SQL Server 2008 R2: Show the dates day into comma separated column

我有以下 table 两个字段:

create table test_t
(
cola varchar(10),
coldate date
);

正在插入一些记录:

insert into test_t values('A','1-1-2010'),
                         ('A','2-1-2010'),
                         ('A','4-1-2010'),
                         ('B','6-1-2010'),
                         ('B','8-1-2010'),
                         ('C','10-1-2010'),
                         ('D','11-1-2010'); 

注意:现在我想显示属于 2 到 3 天的 cola 值。并且想要 将日期显示为逗号分隔的列,如下所示 输出。

预期输出

cola    Dates_Day
------------------
A       1,2,4
B       6,8

试试这个

select t1.cola, stuff((SELECT ',' + right(convert(varchar(5),t2.coldate,3),2)  from
test_t t2 where t2.cola = t1.cola FOR XML PATH('')),1,1,'') AS Dates_Day 
from test_t  t1
group by t1.cola
SELECT DISTINCT
COLA,
STUFF ((SELECT   ','+ CONVERT(VARCHAR,RIGHT(LEFT(COLDATE,7),2)) FROM TEST_T B WHERE A.COLA = B.COLA FOR XML PATH('')),1,1,'') AS [Dates_Day]
FROM TEST_T A
   select COLA, 
   listagg(TO_CHAR(COLDATE,'DD'),',') within group (order by COLDATE) AS CDAY
    from TEST_T
    group by COLA;