合并列中去掉重复项

ilovewalk 2009-07-19 10:05:38
测试数据:#T
A1 A2 A3
1 156 2009-06-08 05:12:24.787
1 156 2009-06-08 05:12:25.470
1 156 2009-06-08 05:12:26.267
1 156 2009-06-08 05:12:27.030
1 160 2009-06-08 05:13:36.237
1 160 2009-06-08 05:13:37.007
1 160 2009-06-08 05:13:37.703
1 160 2009-06-08 05:13:38.500
1 160 2009-06-08 05:13:39.237
1 160 2009-06-08 05:13:40.000
1 160 2009-06-08 05:13:40.767
1 160 2009-06-08 05:14:10.877
1 160 2009-06-08 05:14:11.657
1 161 2009-06-08 05:14:12.573
1 161 2009-06-08 05:14:13.173
1 161 2009-06-08 05:14:13.940
1 161 2009-06-08 05:14:14.703
1 161 2009-06-08 05:14:15.473
1 169 2009-06-08 05:17:36.803
1 169 2009-06-08 05:17:44.500
1 169 2009-06-08 05:17:45.237
1 170 2009-06-08 05:17:46.050
1 170 2009-06-08 05:17:46.783
1 170 2009-06-08 05:17:47.580
1 170 2009-06-08 05:17:48.327

DECLARE @S NVARCHAR(max)
SELECT @S=ISNULL(@S+',','')+CONVERT(NVARCHAR(20),A2) FROM #T with (nolock) WHERE A1=1 AND (A3>='2009-06-08 00:00:00' AND A3<='2009-06-08 12:00:00')
SELECT @S

现在结果类似:
156,156,156,156,158,158,158,158,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,160,161,161,161,161,161,161,161,161,

要求结果类似:
156,160,161

去掉重复的,有什么好的解决方法没???
...全文
232 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixianxxx 2009-07-20
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(A1 int, A2 int, A3 datetime)
go
insert tb SELECT
1, 156 ,'2009-06-08 05:12:24.787'UNION ALL SELECT
1 ,156 ,'2009-06-08 05:12:25.470' UNION ALL SELECT
1, 158 ,'2009-06-08 05:12:26.267' UNION ALL SELECT
1, 156 ,'2009-06-08 05:12:27.030' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:36.237' UNION ALL SELECT
1, 161 ,'2009-06-08 05:13:37.007' UNION ALL SELECT
1, 162 ,'2009-06-08 05:13:37.703' UNION ALL SELECT
1 ,163 ,'2009-06-08 05:13:38.500' UNION ALL SELECT
1 ,164 ,'2009-06-08 05:13:39.237' UNION ALL SELECT
1 ,165 ,'2009-06-08 05:13:40.000' UNION ALL SELECT
1 ,166 ,'2009-06-08 05:13:40.767' UNION ALL SELECT
1 ,166 ,'2009-06-08 05:14:10.877' UNION ALL SELECT
1, 160 ,'2009-06-08 05:14:11.657' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:14:12.573' UNION ALL SELECT
1 ,169,'2009-06-08 05:14:13.173' UNION ALL SELECT
1 ,161,'2009-06-08 05:14:13.940' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:14.703' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:15.473' UNION ALL SELECT
1, 169 ,'2009-06-08 05:17:36.803' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:17:44.500' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:17:45.237' UNION ALL SELECT
1, 170 ,'2009-06-08 05:17:46.050' UNION ALL SELECT
1, 170, '2009-06-08 05:17:46.783' UNION ALL SELECT
1, 170, '2009-06-08 05:17:47.580' UNION ALL SELECT
1, 173 ,'2009-06-08 05:17:48.327'
go
SELECT row_number() over (order by a2) AS ID,a2 INTO #
FROM TB WITH (NOLOCK)
WHERE A1=1 AND (A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00')
GROUP BY A2
SELECT id,begindate=CASE WHEN NOT EXISTS(SELECT * FROM # WHERE a2=t.a2-1 and t.id=ID+1) then a2 end,
enddate=case when not exists(select * from # where a2=t.a2+1 and t.id=id-1) then a2 end
into ## from # t
declare @s varchar(100)
select @S=ISNULL(@S+',','')+rtrim(begindate)+case when begindate=enddate then '' else '-'+RTRIM(enddate) end
from(
select begindate=case when begindate is null then (select top 1 begindate from ## where ID>=t.id and begindate IS not null ) else begindate end,
enddate=case when enddate is null then (select top 1 enddate from ## where ID>=t.id and enddate IS not null ) else enddate end
from ## t ) t
where begindate<=enddate
go
select @s

/*
----------------------------------------------------------------------------------------------------
156,160-162,169-170

*/
htl258_Tony 2009-07-20
  • 打赏
  • 举报
回复
--> 生成测试数据表:tb

If not object_id('[tb]') is null
Drop table [tb]
Go
Create table [tb]([A1] int,[A2] int,[A3] datetime)
Insert tb
Select 1,156,'2009-06-08 05:12:24.787' union all
Select 1,156,'2009-06-08 05:12:25.470' union all
Select 1,156,'2009-06-08 05:12:26.267' union all
Select 1,156,'2009-06-08 05:12:27.030' union all
Select 1,160,'2009-06-08 05:13:36.237' union all
Select 1,160,'2009-06-08 05:13:37.007' union all
Select 1,160,'2009-06-08 05:13:37.703' union all
Select 1,160,'2009-06-08 05:13:38.500' union all
Select 1,160,'2009-06-08 05:13:39.237' union all
Select 1,160,'2009-06-08 05:13:40.000' union all
Select 1,160,'2009-06-08 05:13:40.767' union all
Select 1,160,'2009-06-08 05:14:10.877' union all
Select 1,160,'2009-06-08 05:14:11.657' union all
Select 1,161,'2009-06-08 05:14:12.573' union all
Select 1,161,'2009-06-08 05:14:13.173' union all
Select 1,161,'2009-06-08 05:14:13.940' union all
Select 1,161,'2009-06-08 05:14:14.703' union all
Select 1,161,'2009-06-08 05:14:15.473' union all
Select 1,169,'2009-06-08 05:17:36.803' union all
Select 1,169,'2009-06-08 05:17:44.500' union all
Select 1,169,'2009-06-08 05:17:45.237' union all
Select 1,170,'2009-06-08 05:17:46.050' union all
Select 1,170,'2009-06-08 05:17:46.783' union all
Select 1,170,'2009-06-08 05:17:47.580' union all
Select 1,170,'2009-06-08 05:17:48.327' union all
Select 1,171,'2009-06-08 05:17:48.327'
Go
--Select * from tb
declare @s nvarchar(100)
;with t as
(
select A1,A2
from tb
group by A1,A2
),t1 as
(
select rn=row_number() over(order by a1,a2),*
from t a
where not exists(
select 1
from t
where a1=a.a1
and a2=a.a2-1)
union
select rn=row_number() over(order by a1,a2),*
from t a
where not exists(
select 1
from t
where a1=a.a1
and a2=a.a2+1)
),t2 as
(
select distinct stuff((select '-'+ltrim(A2) from t1 where rn=t.rn for xml path('')),1,1,'') a2
from t1 t
)
select @s=stuff((select ','+a2 from t2 for xml path('')),1,1,'')

select @s
/*
----------------------------------------------------------------------------------------------------
156,160-161,169-171

(1 行受影响)
*/
htl258_Tony 2009-07-20
  • 打赏
  • 举报
回复
--> 生成测试数据表:tb

If not object_id('[tb]') is null
Drop table [tb]
Go
Create table [tb]([A1] int,[A2] int,[A3] datetime)
Insert tb
Select 1,156,'2009-06-08 05:12:24.787' union all
Select 1,156,'2009-06-08 05:12:25.470' union all
Select 1,156,'2009-06-08 05:12:26.267' union all
Select 1,156,'2009-06-08 05:12:27.030' union all
Select 1,160,'2009-06-08 05:13:36.237' union all
Select 1,160,'2009-06-08 05:13:37.007' union all
Select 1,160,'2009-06-08 05:13:37.703' union all
Select 1,160,'2009-06-08 05:13:38.500' union all
Select 1,160,'2009-06-08 05:13:39.237' union all
Select 1,160,'2009-06-08 05:13:40.000' union all
Select 1,160,'2009-06-08 05:13:40.767' union all
Select 1,160,'2009-06-08 05:14:10.877' union all
Select 1,160,'2009-06-08 05:14:11.657' union all
Select 1,161,'2009-06-08 05:14:12.573' union all
Select 1,161,'2009-06-08 05:14:13.173' union all
Select 1,161,'2009-06-08 05:14:13.940' union all
Select 1,161,'2009-06-08 05:14:14.703' union all
Select 1,161,'2009-06-08 05:14:15.473' union all
Select 1,169,'2009-06-08 05:17:36.803' union all
Select 1,169,'2009-06-08 05:17:44.500' union all
Select 1,169,'2009-06-08 05:17:45.237' union all
Select 1,170,'2009-06-08 05:17:46.050' union all
Select 1,170,'2009-06-08 05:17:46.783' union all
Select 1,170,'2009-06-08 05:17:47.580' union all
Select 1,170,'2009-06-08 05:17:48.327' union all
Select 1,171,'2009-06-08 05:17:48.327'
Go
--Select * from tb
declare @s nvarchar(100)
;with t as
(
select A1,A2
from tb
group by A1,A2
),t1 as
(
select rn=row_number() over(order by a1,a2),*
from t a
where not exists(
select 1
from t
where a1=a.a1
and a2=a.a2-1)
union
select rn=row_number() over(order by a1,a2),*
from t a
where not exists(
select 1
from t
where a1=a.a1
and a2=a.a2+1)
),t2 as
(
select distinct stuff((select '-'+ltrim(A2) from t1 where rn=t.rn for xml path('')),1,1,'') a2
from t1 t
)
select @s=stuff((select ','+a2 from t2 for xml path('')),1,1,'')

select @s
/*
----------------------------------------------------------------------------------------------------
156,160-161,169-171

(1 行受影响)
8/
htl258_Tony 2009-07-20
  • 打赏
  • 举报
回复
--> 生成测试数据表:tb

If not object_id('[tb]') is null
Drop table [tb]
Go
Create table [tb]([A1] int,[A2] int,[A3] datetime)
Insert tb
Select 1,156,'2009-06-08 05:12:24.787' union all
Select 1,156,'2009-06-08 05:12:25.470' union all
Select 1,156,'2009-06-08 05:12:26.267' union all
Select 1,156,'2009-06-08 05:12:27.030' union all
Select 1,160,'2009-06-08 05:13:36.237' union all
Select 1,160,'2009-06-08 05:13:37.007' union all
Select 1,160,'2009-06-08 05:13:37.703' union all
Select 1,160,'2009-06-08 05:13:38.500' union all
Select 1,160,'2009-06-08 05:13:39.237' union all
Select 1,160,'2009-06-08 05:13:40.000' union all
Select 1,160,'2009-06-08 05:13:40.767' union all
Select 1,160,'2009-06-08 05:14:10.877' union all
Select 1,160,'2009-06-08 05:14:11.657' union all
Select 1,161,'2009-06-08 05:14:12.573' union all
Select 1,161,'2009-06-08 05:14:13.173' union all
Select 1,161,'2009-06-08 05:14:13.940' union all
Select 1,161,'2009-06-08 05:14:14.703' union all
Select 1,161,'2009-06-08 05:14:15.473' union all
Select 1,169,'2009-06-08 05:17:36.803' union all
Select 1,169,'2009-06-08 05:17:44.500' union all
Select 1,169,'2009-06-08 05:17:45.237' union all
Select 1,170,'2009-06-08 05:17:46.050' union all
Select 1,170,'2009-06-08 05:17:46.783' union all
Select 1,170,'2009-06-08 05:17:47.580' union all
Select 1,170,'2009-06-08 05:17:48.327' union all
Select 1,171,'2009-06-08 05:17:48.327'
Go
--Select * from tb
declare @s nvarchar(100)
;with t as
(
select A1,A2
from tb
group by A1,A2
),t1 as
(
select rn=row_number() over(order by a1,a2),*
from t a
where not exists(
select 1
from t
where a1=a.a1
and a2=a.a2-1)
union
select rn=row_number() over(order by a1,a2),*
from t a
where not exists(
select 1
from t
where a1=a.a1
and a2=a.a2+1)
),t2 as
(
select distinct stuff((select '-'+ltrim(A2) from t1 where rn=t.rn for xml path('')),1,1,'') a2
from t1 t
)
select @s=stuff((select ','+a2 from t2 for xml path('')),1,1,'')

select @s
/*
----------------------------------------------------------------------------------------------------
156,160-161,169-171

(1 行受影响)
8/
xing007hang 2009-07-20
  • 打赏
  • 举报
回复
。。。。。。。。。。。。。。。
仙道彰 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 happyflystone 的回复:]
SQL codeCreatetable[tb]([A1]int,[A2]int,[A3]datetime)Insert tbSelect1,156,'2009-06-08 05:12:24.787'unionallSelect1,156,'2009-06-08 05:12:25.470'unionallSelect1,156,'2009-06-08 05:12:26.267'unionallSel¡­
[/Quote]

石头哥就是我的ox
ilovewalk 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 happyflystone 的回复:]
SQL codeCreatetable[tb]([A1]int,[A2]int,[A3]datetime)Insert tbSelect1,156,'2009-06-08 05:12:24.787'unionallSelect1,156,'2009-06-08 05:12:25.470'unionallSelect1,156,'2009-06-08 05:12:26.267'unionallSel¡­
[/Quote]
我试一试,没问题,明天开贴,给分,谢了。
幸运的意外 2009-07-19
  • 打赏
  • 举报
回复
DECLARE @STR VARCHAR(500)

SELECT @STR=ISNULL(@STR+',','')+LTRIM(A2)
FROM
(SELECT DISTINCT A2 FROM TB WHERE A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00') AS T
SELECT @STR
-狙击手- 2009-07-19
  • 打赏
  • 举报
回复
Create table [tb]([A1] int,[A2] int,[A3] datetime)
Insert tb
Select 1,156,'2009-06-08 05:12:24.787' union all
Select 1,156,'2009-06-08 05:12:25.470' union all
Select 1,156,'2009-06-08 05:12:26.267' union all
Select 1,156,'2009-06-08 05:12:27.030' union all
Select 1,160,'2009-06-08 05:13:36.237' union all
Select 1,160,'2009-06-08 05:13:37.007' union all
Select 1,160,'2009-06-08 05:13:37.703' union all
Select 1,160,'2009-06-08 05:13:38.500' union all
Select 1,160,'2009-06-08 05:13:39.237' union all
Select 1,160,'2009-06-08 05:13:40.000' union all
Select 1,160,'2009-06-08 05:13:40.767' union all
Select 1,160,'2009-06-08 05:14:10.877' union all
Select 1,160,'2009-06-08 05:14:11.657' union all
Select 1,161,'2009-06-08 05:14:12.573' union all
Select 1,161,'2009-06-08 05:14:13.173' union all
Select 1,161,'2009-06-08 05:14:13.940' union all
Select 1,161,'2009-06-08 05:14:14.703' union all
Select 1,162,'2009-06-08 05:14:15.473' union all
Select 1,169,'2009-06-08 05:17:36.803' union all
Select 1,169,'2009-06-08 05:17:44.500' union all
Select 1,169,'2009-06-08 05:17:45.237' union all
Select 1,170,'2009-06-08 05:17:46.050' union all
Select 1,170,'2009-06-08 05:17:46.783' union all
Select 1,170,'2009-06-08 05:17:47.580' union all
Select 1,170,'2009-06-08 05:17:48.327'
Go





select a2,IDENTITY(int,1,1) as comm
into #
from tb
where A1=1 AND (A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00')
group by a2

declare @s varchar(8000)



select
@s=isnull(@s+',','')+rtrim(a.a2)+case when a.a2!=min(b.a2) then '-'+rtrim(min(b.a2)) else '' end
from
(select c.* from # c where not exists(select 1 from # where a2=c.a2-1)) a,
(select c.* from # c where not exists(select 1 from # where a2=c.a2+1)) b
where
a.a2<=b.a2
group by
a.a2
order by
a.a2

select @s

drop table tb,#

/*
---------------------
156,160-162,169-170

(所影响的行数为 1 行)
*/
-狙击手- 2009-07-19
  • 打赏
  • 举报
回复
晕,搞错了,重来
-狙击手- 2009-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ilovewalk 的回复:]
很好很强大,谢谢大家,
如果结果是156,158,160,161,162,163,164,165,166,169,170,173
能不能实现这样的结果:156,158,160-166,169-170,173,
也就是有2个以上连续的数字用"-",不连续的用",",就可以了。如果这个也能解决,开新贴给100分.
再次谢谢了。

[/Quote]

Create table [tb]([A1] int,[A2] int,[A3] datetime)
Insert tb
Select 1,156,'2009-06-08 05:12:24.787' union all
Select 1,156,'2009-06-08 05:12:25.470' union all
Select 1,156,'2009-06-08 05:12:26.267' union all
Select 1,156,'2009-06-08 05:12:27.030' union all
Select 1,160,'2009-06-08 05:13:36.237' union all
Select 1,160,'2009-06-08 05:13:37.007' union all
Select 1,160,'2009-06-08 05:13:37.703' union all
Select 1,160,'2009-06-08 05:13:38.500' union all
Select 1,160,'2009-06-08 05:13:39.237' union all
Select 1,160,'2009-06-08 05:13:40.000' union all
Select 1,160,'2009-06-08 05:13:40.767' union all
Select 1,160,'2009-06-08 05:14:10.877' union all
Select 1,160,'2009-06-08 05:14:11.657' union all
Select 1,161,'2009-06-08 05:14:12.573' union all
Select 1,161,'2009-06-08 05:14:13.173' union all
Select 1,161,'2009-06-08 05:14:13.940' union all
Select 1,161,'2009-06-08 05:14:14.703' union all
Select 1,161,'2009-06-08 05:14:15.473' union all
Select 1,169,'2009-06-08 05:17:36.803' union all
Select 1,169,'2009-06-08 05:17:44.500' union all
Select 1,169,'2009-06-08 05:17:45.237' union all
Select 1,170,'2009-06-08 05:17:46.050' union all
Select 1,170,'2009-06-08 05:17:46.783' union all
Select 1,170,'2009-06-08 05:17:47.580' union all
Select 1,170,'2009-06-08 05:17:48.327'
Go





select a2,IDENTITY(int,1,1) as comm
into #
from tb
where A1=1 AND (A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00')
group by a2

declare @s varchar(8000)


select
@s=isnull(@s+',','')+rtrim(a.A2)+case when a.A2!=min(b.A2) then '-'+rtrim(min(b.A2)) else '' end
from
(select c.* from # c where not exists(select 1 from # where comm=c.comm and A2=c.A2-1)) a,
(select c.* from # c where not exists(select 1 from # where comm=c.comm and A2=c.A2+1)) b
where
a.comm=b.comm and a.A2<=b.A2
group by
a.comm,a.A2
order by
a.comm,a.A2

select @s

drop table tb,#

/*
----------------------
156,160,161,169,170

(所影响的行数为 1 行)
*/
ilovewalk 2009-07-19
  • 打赏
  • 举报
回复
很好很强大,谢谢大家,
如果结果是156,158,160,161,162,163,164,165,166,169,170,173
能不能实现这样的结果:156,158,160-166,169-170,173,
也就是有2个以上连续的数字用"-",不连续的用",",就可以了。如果这个也能解决,开新贴给100分.
再次谢谢了。
htl258_Tony 2009-07-19
  • 打赏
  • 举报
回复

---------------------------------
-- Author: htl258(Tony)
-- Date : 2009-07-19 22:17:50
---------------------------------
--> 生成测试数据表:tb

If not object_id('[tb]') is null
Drop table [tb]
Go
Create table [tb]([A1] int,[A2] int,[A3] datetime)
Insert tb
Select 1,156,'2009-06-08 05:12:24.787' union all
Select 1,156,'2009-06-08 05:12:25.470' union all
Select 1,156,'2009-06-08 05:12:26.267' union all
Select 1,156,'2009-06-08 05:12:27.030' union all
Select 1,160,'2009-06-08 05:13:36.237' union all
Select 1,160,'2009-06-08 05:13:37.007' union all
Select 1,160,'2009-06-08 05:13:37.703' union all
Select 1,160,'2009-06-08 05:13:38.500' union all
Select 1,160,'2009-06-08 05:13:39.237' union all
Select 1,160,'2009-06-08 05:13:40.000' union all
Select 1,160,'2009-06-08 05:13:40.767' union all
Select 1,160,'2009-06-08 05:14:10.877' union all
Select 1,160,'2009-06-08 05:14:11.657' union all
Select 1,161,'2009-06-08 05:14:12.573' union all
Select 1,161,'2009-06-08 05:14:13.173' union all
Select 1,161,'2009-06-08 05:14:13.940' union all
Select 1,161,'2009-06-08 05:14:14.703' union all
Select 1,161,'2009-06-08 05:14:15.473' union all
Select 1,169,'2009-06-08 05:17:36.803' union all
Select 1,169,'2009-06-08 05:17:44.500' union all
Select 1,169,'2009-06-08 05:17:45.237' union all
Select 1,170,'2009-06-08 05:17:46.050' union all
Select 1,170,'2009-06-08 05:17:46.783' union all
Select 1,170,'2009-06-08 05:17:47.580' union all
Select 1,170,'2009-06-08 05:17:48.327'
Go
--Select * from tb

-->SQL查询如下:
DECLARE @S NVARCHAR(MAX)
SELECT @S=ISNULL(@S+',','')+LTRIM(A2)
FROM TB WITH (NOLOCK)
WHERE A1=1 AND (A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00')
GROUP BY A2
SELECT @S
/*
---------------------------
156,160,161,169,170

(1 行受影响)
*/
zzz1975 2009-07-19
  • 打赏
  • 举报
回复
select * into #temp from t1 a where id in (select top 2 id from t1 where field1=a.field1 and field2=a.field2 and field3=a.field3)

delete from table

insert into table select field1,field2,field3 from #temp

去掉重复记录
-狙击手- 2009-07-19
  • 打赏
  • 举报
回复
..
SQL77 2009-07-19
  • 打赏
  • 举报
回复
CREATE TABLE TBTEST(A1 INT,A2 INT,     A3 DATETIME)
INSERT TBTEST
SELECT 1, 156, '2009-06-08 05:12:24.787' UNION
SELECT 1, 156, '2009-06-08 05:12:25.470' UNION
SELECT 1, 156, '2009-06-08 05:12:26.267' UNION
SELECT 1, 156, '2009-06-08 05:12:27.030' UNION
SELECT 1, 160, '2009-06-08 05:13:36.237' UNION
SELECT 1, 160, '2009-06-08 05:13:37.007' UNION
SELECT 1, 160, '2009-06-08 05:13:37.703' UNION
SELECT 1, 160, '2009-06-08 05:13:38.500' UNION
SELECT 1, 160, '2009-06-08 05:13:39.237' UNION
SELECT 1, 160, '2009-06-08 05:13:40.000 'UNION
SELECT 1, 160, '2009-06-08 05:13:40.767' UNION
SELECT 1, 160, '2009-06-08 05:14:10.877' UNION
SELECT 1, 160, '2009-06-08 05:14:11.657' UNION
SELECT 1, 161, '2009-06-08 05:14:12.573' UNION
SELECT 1, 161, '2009-06-08 05:14:13.173' UNION
SELECT 1, 161, '2009-06-08 05:14:13.940' UNION
SELECT 1, 161, '2009-06-08 05:14:14.703' UNION
SELECT 1, 161, '2009-06-08 05:14:15.473' UNION
SELECT 1, 169, '2009-06-08 05:17:36.803' UNION
SELECT 1, 169, '2009-06-08 05:17:44.500 'UNION
SELECT 1, 169, '2009-06-08 05:17:45.237 '

DECLARE @STR VARCHAR(500)

SELECT @STR=ISNULL(@STR+',','')+LTRIM(A2)
FROM
(SELECT DISTINCT A2 FROM TBTEST WHERE A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00') AS T

SELECT @STR


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
156,160,161,169

(所影响的行数为 1 行)
feixianxxx 2009-07-19
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(A1 int, A2 int, A3 datetime)
go
insert tb SELECT
1, 156 ,'2009-06-08 05:12:24.787'UNION ALL SELECT
1 ,156 ,'2009-06-08 05:12:25.470' UNION ALL SELECT
1, 156 ,'2009-06-08 05:12:26.267' UNION ALL SELECT
1, 156 ,'2009-06-08 05:12:27.030' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:36.237' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:37.007' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:37.703' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:38.500' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:39.237' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:40.000' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:40.767' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:14:10.877' UNION ALL SELECT
1, 160 ,'2009-06-08 05:14:11.657' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:12.573' UNION ALL SELECT
1 ,161,'2009-06-08 05:14:13.173' UNION ALL SELECT
1 ,161,'2009-06-08 05:14:13.940' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:14.703' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:15.473' UNION ALL SELECT
1, 169 ,'2009-06-08 05:17:36.803' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:17:44.500' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:17:45.237' UNION ALL SELECT
1, 170 ,'2009-06-08 05:17:46.050' UNION ALL SELECT
1, 170, '2009-06-08 05:17:46.783' UNION ALL SELECT
1, 170, '2009-06-08 05:17:47.580' UNION ALL SELECT
1, 170 ,'2009-06-08 05:17:48.327'
go
DECLARE @STR VARCHAR(500)
set @STR=''
SELECT @STR=@str+','+LTRIM(A2)
FROM
(SELECT DISTINCT A2 FROM TB WHERE A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00') AS T
SELECT stuff(@STR,1,1,'')
go
/*------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
156,160,161,169,170

-------*/
feixianxxx 2009-07-19
  • 打赏
  • 举报
回复
-- =========================================
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================

IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(A1 int, A2 int, A3 datetime)
go
insert tb SELECT
1, 156 ,'2009-06-08 05:12:24.787'UNION ALL SELECT
1 ,156 ,'2009-06-08 05:12:25.470' UNION ALL SELECT
1, 156 ,'2009-06-08 05:12:26.267' UNION ALL SELECT
1, 156 ,'2009-06-08 05:12:27.030' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:36.237' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:37.007' UNION ALL SELECT
1, 160 ,'2009-06-08 05:13:37.703' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:38.500' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:39.237' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:40.000' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:13:40.767' UNION ALL SELECT
1 ,160 ,'2009-06-08 05:14:10.877' UNION ALL SELECT
1, 160 ,'2009-06-08 05:14:11.657' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:12.573' UNION ALL SELECT
1 ,161,'2009-06-08 05:14:13.173' UNION ALL SELECT
1 ,161,'2009-06-08 05:14:13.940' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:14.703' UNION ALL SELECT
1 ,161 ,'2009-06-08 05:14:15.473' UNION ALL SELECT
1, 169 ,'2009-06-08 05:17:36.803' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:17:44.500' UNION ALL SELECT
1 ,169 ,'2009-06-08 05:17:45.237' UNION ALL SELECT
1, 170 ,'2009-06-08 05:17:46.050' UNION ALL SELECT
1, 170, '2009-06-08 05:17:46.783' UNION ALL SELECT
1, 170, '2009-06-08 05:17:47.580' UNION ALL SELECT
1, 170 ,'2009-06-08 05:17:48.327'
go
DECLARE @STR VARCHAR(500)

SELECT @STR=ISNULL(@STR+',','')+LTRIM(A2)
FROM
(SELECT DISTINCT A2 FROM TB WHERE A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00') AS T
SELECT @STR
go
/*------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
156,160,161,169,170

-------*/
SQL77 2009-07-19
  • 打赏
  • 举报
回复
DECLARE @STR VARCHAR(500)

SELECT @STR=ISNULL(@STR+',','')+LTRIM(A2)
FROM
(SELECT DISTINCT A2 FROM TB WHERE A3>='2009-06-08 00:00:00' AND A3 <='2009-06-08 12:00:00') AS T

SELECT @STR
多薄多表合并——excel 外接程序插件 使 用 说 明 一、功能: 1、多薄合并:将某一文件夹或当前文件夹下所有工作薄合并到一个自动新建的“汇总表”工作薄。每个工作薄可含多个不同的工作表,工作表与工作表一一对应(合并)。有“保留重复行(默认)”、“去除重复行”两种方式。 默认合并当前文件夹下的所有工作薄;在启动excel后(未保存)的新工作薄点击该按钮则打开“文件夹选择”对话框。 2、多表合并:将当前工作薄所有工作表合并到一个自动生成且位于最后的“汇总表”工作表。有“保留重复行(默认)”、“去除重复行”两种方式。 3、清除数据:清除当前工作表或当前工作薄所有工作表数据。 默认“取消”按钮(即按Enter后)仅清除当前工作表的数据。 4、分类汇总:将所选区域第一相同行的各数据进行汇总(求和),并将汇总结果放置到所选目标区域。汇总结果为第一不再有重复行,即第一“去除重复行”,其后各数据求和或文本联接。 5、拆分表格:将所选区域第一不同行拆分为许多工作表,以第一各行内容为工作表名称,并复制其后面各内容。 6、选择查询:在所选区域第一查找,并将查找结果(符合查询条件的许多行)放置到所选择的目标区域。 7、多薄汇总——求和(默认)、全部求和、平均、计数:将某一文件夹或当前文件夹下的所有工作薄的当前工作表的数据按照所选择的单元格区域汇总(求和、平均、计数)到一个自动新建的“汇总表”工作薄。工作表与工作表一一对应,单元格与单元格一一对应汇总(求和、全部求和、平均、计数)数据。。 8、多表汇总——求和(默认)、全部求和、平均、计数:将某一工作薄所有工作表数据,按照所选择的单元格区域进行汇总(求和、平均、计数)。 9、插入空行:在当前单元格下隔行插入空行。 10:删除空行:删除当前单元格以下的所有空行或0值行。 11、插入表头:在所选择的表头区域下方,隔行插入表头(工资条)。 12、批量打印:打印某一文件夹(或当前文件夹)下的所有工作薄,可以选择打印“整个工作薄”、按名称“选定工作表”、按位置“指定工作表”,可选择“打印份数”、“逐份打印”。 二、注意: “多薄合并、多表合并”:要合并的工作薄(或工作表)格式必须一致;工作表一一对应;所有工作表的表头行数必须相同;仅复制表头以下的行;多薄多表合并,具有“去除重复行”功能,即一行的各数据均相同的行仅保留一行;工作表下方不要有备注行。 三、安装使用: 1、 安装时可能受360警告或拦截,这是正常提示,选择“添加信任”或“直接运行”即可。 安装完成后,在excel203工具栏或excel2010“多薄多表”选项卡会有“多薄合并、多表合并、清除数据、分类汇总、拆分表格、选择查询”等功能按钮。(见下图) 2、默认安装位置为C:\WINDOWS\mergebooks.dll ; 如果电脑进行了多用户设置,如电脑用户为lcb,可把mergebooks.dll复制到C:\Documents and Settings\lcb\Application Data\Microsoft\AddIns\mergebooks.dll 。 3、Excel2003调出“多薄多表”方法: 如果在excel2003工具栏没有以上按钮,则按如下方法进行: 第一步(添加到COM加载项):打开excel,在“工具栏”上点击“COM加载项”。调出如下窗口。 把“可用加载项”的“mergebooks.dll” (打勾),此时excel2003工具栏将出现按钮;如果没有出现,则继续点击上图的“添加”按钮,进入以下窗口: 在右边窗口选择Mergebooks.dll——确定——返回(第一个窗口)——(继续)确定返回——关闭excel。 第二步(添加到工具栏):再次打开excel2003,点击“COM加载项”进入第一个窗口,把左边窗口的“Mergebooks”(打勾)——确定(返回),即可出现在工具栏。 4、Excel2010调出“多薄多表”方法:文件——选项——自定义功能区——(右边)“多薄多表”(打勾) 开发者:hu73248@163.com
excel常用函数公式及技巧搜集 从身份证号码提取出生年月日 从身份证号码提取出性别 从身份证号码进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双成绩进行共同排名 在双间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并排名 无并排名 有并分段排名 无并分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N出A1:L9都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL如何删除*号 将字符串的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表不同行和的空格 如何禁止输入空格 代替单元格字符串 把单元格的数字转变成为特定的字符格式 把有六百多个单元格的一,变成一页的多 将N变M公式归纳为 一变四变一 重复四次填充 多行数据排成一 将单元格一分为多 首写字母大写 把单元格编号的小写字母变成大写字母 让姓名左右对齐 数字居而小数点又对齐 计算指定单元格编号组非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel插入空白行 快速删除工作表的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL快速定位最后一行数据 用SUN函数快速求和 在Excel快速查看所有工作表公式 在Excel设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel快速转换 将原有的内容倒置过来 快速回到A1单元格 复制粘贴回车键的妙用 一次选批注单元格 一次在所有单位格插入批注 在公式插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel鼠标双击妙用 Excel快速定位的技巧实例 在Excel插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字间的数 三个数,如何取出间那个 取数值后三位公式 取数函数 如何把单元格的数字提取出来(字符串不连续) 数字在字符串不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容字符串 如何提取一串数字的几位数字(字符) 如何把一个单元格的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本的前几个字符去除 对一的文字统一去掉最后一个字 讨如何去掉单元格的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格的数全部变成万元表示 有何办法实现将一张表的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a动态求和 动态求和公式 的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔将相同项目进行求和 隔行或隔加总 请问如何在一百行内做隔行相加 如何将间隔一定的的数据相加呢 隔求和(A、B) 隔求和的公式 隔求和 关于隔行、隔求和的问题 EXCEL求两的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十数据合计成一 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表 统计最大的连续次数3个“不重复”个数统计在一重复的姓名,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或间值)平均数怎么弄 去掉两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值去掉最高与最低然后求平均值 求最大值(n) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据自动获取最后一个数据 两数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C输入工号在D显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性
excel常用函数公式及技巧搜集 从身份证号码提取出生年月日 从身份证号码提取出性别 从身份证号码进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双成绩进行共同排名 在双间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并排名 无并排名 有并分段排名 无并分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N出A1:L9都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL如何删除*号 将字符串的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表不同行和的空格 如何禁止输入空格 代替单元格字符串 把单元格的数字转变成为特定的字符格式 把有六百多个单元格的一,变成一页的多 将N变M公式归纳为 一变四变一 重复四次填充 多行数据排成一 将单元格一分为多 首写字母大写 把单元格编号的小写字母变成大写字母 让姓名左右对齐 数字居而小数点又对齐 计算指定单元格编号组非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel插入空白行 快速删除工作表的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL快速定位最后一行数据 用SUN函数快速求和 在Excel快速查看所有工作表公式 在Excel设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel快速转换 将原有的内容倒置过来 快速回到A1单元格 复制粘贴回车键的妙用 一次选批注单元格 一次在所有单位格插入批注 在公式插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel鼠标双击妙用 Excel快速定位的技巧实例 在Excel插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号后的数字 如何提取数字间的数 三个数,如何取出间那个 取数值后三位公式 取数函数 如何把单元格的数字提取出来(字符串不连续) 数字在字符串不连续如何提取数字 用如何提取“-”前后的字符 怎样删去﹕后的文字 怎样只取“.”之后的文字﹖ 获取单元格内容字符串 如何提取一串数字的几位数字(字符) 如何把一个单元格的数字挑出来 分割文本 按照给定的位数,截断小数点后的数字 单元格数字提取问题 以关键字提取名称 如何把文本的前几个字符去除 对一的文字统一去掉最后一个字 讨如何去掉单元格的第一个数字? 论一下取最后一个单词的方法 如何去掉单元格最后一位数字 如何在一已经输入的数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 【数据拆分与合并】 数字如何拆分 单元格的数据拆分 单元格的拆分 如何拆分字组 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格的组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格的内容合在一个单元格 多个工作表的单元格合并计算 【条件自定义格式】 通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值的正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格的数全部变成万元表示 有何办法实现将一张表的数据由元的单位转换为万元 常用的自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页的标题 一个单元格内格式问题 定制单元格数字显示格式 巧用定位选条件单元格 工作表的标签的字体和大小可以更改吗 隔行用不同颜色显示,请问如何做 将单元格设置为有“凸出”的效果或“凹进去”的效果 在Excel设计彩色数字 定义名称的妙处 零值问题 【汇总计算与统计】 个调税公式 算物价的函数 自动计算应收款滞纳金 淘汰率 应用公积金的一个函数 如何利用公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位的数据如何进行求和 对a动态求和 动态求和公式 的跳跃求和 有规律的隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔将相同项目进行求和 隔行或隔加总 请问如何在一百行内做隔行相加 如何将间隔一定的的数据相加呢 隔求和(A、B) 隔求和的公式 隔求和 关于隔行、隔求和的问题 EXCEL求两的对应元素乘积之和 计算900~1000之间的数值之和 双条件求和 如何实现这样的条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80的单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段的数量 如何计算20-50岁的人数? 如何统计40-50岁的人的个数 要统计出7岁的女生人数 统计人数 如何统计A1:A10,D1:D10的人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计的问题 统计数据问题一例 根据给定的条件,对数据进行合计 十数据合计成一 统计汉字字符个数 关于取数 统计单元格内不为空的格数 自动将销量前十名的产品代号及销量填入表 统计最大的连续次数3个“不重复”个数统计在一重复的姓名,如何统计出具体有几人 计数的问题 不相同 如何分班统计男女人数 在几百几千个数据发现重复项 统计互不相同的数据个数 多个工作表的单元格合并计算 单个单元格字符统计 数据区包含某一字符的项的总和,该用什么公式 函数如何实现分组编码 【数值取整及进位】 取整数函数 数值取整 求余数的函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定的位数,四舍五入指定的数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数的四舍五入不进位的解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面的数字都去掉,不要四舍五入 求真正的四舍五入后的数 小数点进位 个位数归0或者归5 【大小值或间值】 求平均值 如何实现求平均值时只对不等于零的数求均值? 平均分的问题 怎样求最大值(最小值或间值)平均数怎么弄 去掉两个最大值和两个最小值的公式 去一行最高分最低分求平均值 在9个数值去掉最高与最低然后求平均值 求最大值(n) 如何实现求平均值时只对不等于零的数求均值? 得到单元格编号组最大的数或最小的数 标记出3个最大最小值 取前五名,后五名的方法 如何用公式求出最大值所在的行? 求多个最高分 如何求多条件的平均值 想求出第三大之数值 【查询和查找引用】 查找顺序公式 怎样实现精确查询 查找及引用 查找函数的应用 怎么能方便的判断某个单元格包含多少个指定的字符?如何用查找函数 日期查找的问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找的问题 查找一最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找的函数(查找末位词组) 怎样从原始数据自动获取最后一个数据 两数据查找相同值对应的位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 【输入数据的技巧】 谈谈Excel输入的技巧 一不输入重复数字 如果要查找重复输入的数字 单元格输入 大量0值输入超级技巧 如何在C输入工号在D显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧