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;
我有以下 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;