表dt1:
ID adddate text1 text2
3234256554 2007-6-5 a1a1a1a1a1a1 a2a2a2a2a2a2
43545364565 2007-06-05 b1b1b1b1b1b1 b2b2b2b2b2b2
3242545 2008-11-15 c1c1c1c1c1c1 c2c2c2c2c2c2
34243 2008-11-20 d1d1d1d1d1d1 d2d2d2d2d2d2
453453433 2008-11-20 e1e1e1e1e1e1 e2e2e2e2e2e2
4454666 2008-11-20 f1f1f1f1f1f1 f2f2f2f2f2f2导入表dt2:得
ID PID title adddate ntext
修改时间(年月日时分秒32位) 3 2007年6月5日 2007-6-5 a1a1a1a1a1a1\nb1b1b1b1b1b1
修改时间(年月日时分秒32位) 3 2008年11月15日 2008-11-15 c1c1c1c1c1c1
修改时间(年月日时分秒32位) 3 2008年11月20日 2008-11-20 d1d1d1d1d1d1\ne1e1e1e1e1e1\nf1f1f1f1f1f1
(ID根据导入时间自动生成,PID固定赋值3,title根据adddate生成,ntext由text1根据adddate group by 而来)请问用T-SQL怎么写?好用的我追加。
ID adddate text1 text2
3234256554 2007-6-5 a1a1a1a1a1a1 a2a2a2a2a2a2
43545364565 2007-06-05 b1b1b1b1b1b1 b2b2b2b2b2b2
3242545 2008-11-15 c1c1c1c1c1c1 c2c2c2c2c2c2
34243 2008-11-20 d1d1d1d1d1d1 d2d2d2d2d2d2
453453433 2008-11-20 e1e1e1e1e1e1 e2e2e2e2e2e2
4454666 2008-11-20 f1f1f1f1f1f1 f2f2f2f2f2f2导入表dt2:得
ID PID title adddate ntext
修改时间(年月日时分秒32位) 3 2007年6月5日 2007-6-5 a1a1a1a1a1a1\nb1b1b1b1b1b1
修改时间(年月日时分秒32位) 3 2008年11月15日 2008-11-15 c1c1c1c1c1c1
修改时间(年月日时分秒32位) 3 2008年11月20日 2008-11-20 d1d1d1d1d1d1\ne1e1e1e1e1e1\nf1f1f1f1f1f1
(ID根据导入时间自动生成,PID固定赋值3,title根据adddate生成,ntext由text1根据adddate group by 而来)请问用T-SQL怎么写?好用的我追加。
--> 测试数据:[test]
if object_id('[test]') is not null drop table [test]
create table [test](
[ID] bigint,
[adddate] datetime,
[text1] varchar(12),
[text2] varchar(12)
)
insert [test]
select 3234256554,'2007-6-5','a1a1a1a1a1a1','a2a2a2a2a2a2' union all
select 43545364565,'2007-06-05','b1b1b1b1b1b1','b2b2b2b2b2b2' union all
select 3242545,'2008-11-15','c1c1c1c1c1c1','c2c2c2c2c2c2' union all
select 34243,'2008-11-20','d1d1d1d1d1d1','d2d2d2d2d2d2' union all
select 453453433,'2008-11-20','e1e1e1e1e1e1','e2e2e2e2e2e2' union all
select 4454666,'2008-11-20','f1f1f1f1f1f1','f2f2f2f2f2f2'SELECT GETDATE() as ID,3 as PID,
LTRIM(YEAR([adddate]))+'年'+LTRIM(MONTH([adddate]))+'月'+LTRIM(DAY([adddate]))+'日' as title,
convert(varchar(10),adddate,120) as adddate,[text1] as [ntext]
INTO dt2
FROM (SELECT DISTINCT [adddate] FROM [test])A
OUTER APPLY(
SELECT [text1]= STUFF(REPLACE(REPLACE(
( SELECT [text1] FROM [test] N
WHERE [adddate] = A.[adddate]
FOR XML AUTO
), '<N text1="', '\n'), '"/>', ''), 1, 2, '')
)NSELECT * FROM dt2
/*
ID PID title adddate ntext
------------------------------------------------------------------------------------------------------------------
2012-06-07 12:12:32.130 3 2007年6月5日 2007-06-05 a1a1a1a1a1a1\nb1b1b1b1b1b1
2012-06-07 12:12:32.130 3 2008年11月15日 2008-11-15 c1c1c1c1c1c1
2012-06-07 12:12:32.130 3 2008年11月20日 2008-11-20 d1d1d1d1d1d1\ne1e1e1e1e1e1\nf1f1f1f1f1f1
*/