34,588
社区成员
发帖
与我相关
我的任务
分享
MOBILE_NO SMS_CONTENT INTO_TIME MSGSUB MSGSUM
13269379030 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按','分割 5.发送内容 2013-08-23 15:28:57.730 1 3
13269379030 中不能包含敏感字 6.系统会自动过滤无效和重复手机号 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按 2013-08-23 15:28:57.730 2 3
13269379030 每67条来计算 4.给多个号码发送按','分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 2013-08-23 15:28:57.730 3 3
MOBILE_NO SMS_CONTENT INTO_TIME
13269379030 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按','分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按','分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 2013-08-23 15:28:57.730
CREATE VIEW [dbo].[V_Test]
AS
select MOBILE_NO,
sms_content = (SELECT ''+sms_content FROM T_Test WHERE MOBILE_NO=a.MOBILE_NO AND MSGSUM=a.MSGSUM ORDER BY msgsub FOR XML PATH('')),
MIN(into_time) as into_time
from T_Test a
GROUP BY MOBILE_NO,MSGSUM --修正一下:把手机号和时间相同的而且MSGSUM也相同的
CREATE TABLE T_Test
(MOBILE_NO VARCHAR(20),
SMS_CONTENT VARCHAR(4000),
INTO_TIME DATETIME,
MSGSUB INT,
MSGSUM INT)
INSERT INTO T_Test(MOBILE_NO,SMS_CONTENT,INTO_TIME,MSGSUB,MSGSUM)
VALUES('13269379030'
,'1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按,分割 5.发送内容'
,'2013-08-23 15:28:57.730', 1, 3)
,('13269379030','中不能包含敏感字 6.系统会自动过滤无效和重复手机号 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按','2013-08-23 15:28:57.730',2,3)
,('13269379030','每67条来计算 4.给多个号码发送按,分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号'
,'2013-08-23 15:28:57.730',3,3)
,('1234567890','test',GETDATE(),1,1)
,('1234567891','test1',GETDATE(),1,2)
,('1234567891','test1',GETDATE(),2,2)
--查询
select MOBILE_NO,
sms_content = (SELECT ''+sms_content FROM T_Test WHERE MOBILE_NO=a.MOBILE_NO ORDER BY msgsub FOR XML PATH('')),
MIN(into_time) as into_time
from T_Test a
GROUP BY MOBILE_NO
--结果
/*
MOBILE_NO sms_content into_time
1234567890 test 2013-08-23 16:35:09.757
1234567891 test1test1 2013-08-23 16:35:09.757
13269379030 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按,分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按,分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 2013-08-23 15:28:57.730
*/
if OBJECT_ID('tempdb..#temp', 'u') is not null drop table #temp;
go
create table #temp( [MOBILE_NO] varchar(100), [SMS_CONTENT] varchar(1000), [INTO_TIME] varchar(100), [MSGSUB] varchar(100), [MSGSUM] varchar(100));
insert #temp
select '13269379030','1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按 分割 5.发送内容','2013-08-23 15:28:57.730','1','3' union all
select '13269379030','中不能包含敏感字 6.系统会自动过滤无效和重复手机号 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按','2013-08-23 15:28:57.730','2','3' union all
select '13269379030','每67条来计算 4.给多个号码发送按 分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号','2013-08-23 15:28:57.730','3','3'
--SQL:
select
MOBILE_NO,
sms_content = (SELECT ''+sms_content FROM #temp WHERE MOBILE_NO=a.MOBILE_NO ORDER BY msgsub FOR XML PATH('')),
into_time=MIN(into_time)
from #temp a
GROUP BY MOBILE_NO
/*
MOBILE_NO sms_content into_time
13269379030 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按 分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 1.短信内容不能为空 2.发送手机不能为空 3.70字以内计费一条,超过70字按每67条来计算 4.给多个号码发送按 分割 5.发送内容中不能包含敏感字 6.系统会自动过滤无效和重复手机号 2013-08-23 15:28:57.730
*/