已知:
表
CREATE TABLE [dbo].[LogTab](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NOT NULL,
[Stime] [varchar](19) NOT NULL,
[Etime] [varchar](19) NOT NULL,
[Guid] [varchar](32) NOT NULL,
CONSTRAINT [PK_LogTab] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
表数据
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','2015-05-07 14:10:27','','bbc019d458a24f089e537ddca9deb34b')
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','','2015-05-07 14:10:28','bbc019d458a24f089e537ddca9deb34b')
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','2015-05-07 14:10:30','','e2c4386bc52448c1b3ff9f780ac1afe8')
INSERT INTO [dbo].[LogTab]([Name],[Stime],[Etime],[Guid])
VALUES('Blog','','2015-05-07 14:10:31','e2c4386bc52448c1b3ff9f780ac1afe8')
问:
根据guid相等,合并一条数据,里面包含名称,开始时间和结束时间
答:
SELECT a.[Name],a.[Stime],b.[Etime]
FROM dbo.LogTab as a,dbo.LogTab as b
WHERE a.Guid=b.Guid and a.Stime <> '' and b.Etime <>''
求:查询语句优化
------解决思路----------------------
create index x1 on LogTab(Guid,Stime);
create index x2 on LogTab(Guid,Etime);
------解决思路----------------------
where条件里的字段尽量建成索引。