sql合并

好帅的一条鱼 2009-05-18 05:02:13
05021604 臧海梅 假日加班 0.50
05021604 臧海梅 平时加班 2.00
这样两条记录,我能在sql语句上修改下,将第一个栏位合并吗(像excel合并单元格那样)。谢了
...全文
98 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2009-05-18
  • 打赏
  • 举报
回复

create table [tb]([col1] varchar(8),[col2] varchar(6),[col3] varchar(8),[col4] numeric(3,2))
insert [tb]
select '05021604','臧海梅','假日加班',0.50 union all
select '05021604','臧海梅','平时加班',2.00

SELECT * into #tb FROM tb WHERE col1='05021604'

UPDATE #tb SET col1='' WHERE not exists (SELECT TOP 1 * FROM #tb t where t.col3>#tb.col3 )

select * from #tb

col1 col2 col3 col4
-------- ------ -------- -----
05021604 臧海梅 假日加班 .50
臧海梅 平时加班 2.00

(所影响的行数为 2 行)

htl258_Tony 2009-05-18
  • 打赏
  • 举报
回复
if object_id('[tb]') is not null drop table [tb] 
go
create table [tb]([a] varchar(10),[b] varchar(10),[c] varchar(10),[d] dec(9,2))
insert [tb] select 5021604,'臧海梅','假日加班',0.5
union all select 5021604,'臧海梅','平时加班',2
go


select
a=isnull((select top 1 a from tb where a=t.a and c>t.c),''),
b,
c,
d
from
tb t

/*
a b c d
---------- ---------- ---------- ---------------------------------------
5021604 臧海梅 假日加班 0.50
臧海梅 平时加班 2.00

(2 行受影响)
*/

MODIFY,比较列错,应该是C
htl258_Tony 2009-05-18
  • 打赏
  • 举报
回复
if object_id('[tb]') is not null drop table [tb] 
go
create table [tb]([a] varchar(10),[b] varchar(10),[c] varchar(10),[d] dec(9,2))
insert [tb] select 5021604,'臧海梅','假日加班',0.5
union all select 5021604,'臧海梅','平时加班',2
go


select
a=isnull((select top 1 a from tb where a=t.a and d>t.d),''),
b,
c,
d
from
tb t

/*
a b c d
---------- ---------- ---------- ---------------------------------------
5021604 臧海梅 假日加班 0.50
臧海梅 平时加班 2.00

(2 行受影响)
*/
csdyyr 2009-05-18
  • 打赏
  • 举报
回复
DECLARE @TB TABLE([col1] VARCHAR(8), [col2] NVARCHAR(3), [col3] NVARCHAR(4), [col4] DECIMAL(10,1))
INSERT @TB
SELECT '05021604', N'臧海梅', N'假日加班', 0.50 UNION ALL
SELECT '05021604', N'臧海梅', N'平时加班', 2.00

SELECT CASE WHEN SEQ=1 THEN col1 else '' END AS col1,col2,col3,col4
FROM (
SELECT *,SEQ=ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY GETDATE())
FROM @TB
) T
/*
col1 col2 col3 col4
-------- ---- ---- ---------------------------------------
05021604 臧海梅 假日加班 0.5
臧海梅 平时加班 2.0
*/
SQL77 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 SQL77 的回复:]
引用楼主 good212164 的帖子:
05021604 臧海梅 假日加班 0.50
05021604 臧海梅 平时加班 2.00
这样两条记录,我能在sql语句上修改下,将第一个栏位合并吗(像excel合并单元格那样)。谢了



SQL codeUPDATE #tbSET 序号='' WHERE NOT EXISTS(SELECT TOP 1 * FROM #tb)
[/Quote]

SELECT * into #tb FROM TA WHERE 序号='05021604'
UPDATE #tbSET 序号='' WHERE NOT EXISTS(SELECT TOP 1 * FROM #tb)

这样试试
SQL77 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 SQL77 的回复:]
引用楼主 good212164 的帖子:
05021604 臧海梅 假日加班 0.50
05021604 臧海梅 平时加班 2.00
这样两条记录,我能在sql语句上修改下,将第一个栏位合并吗(像excel合并单元格那样)。谢了



SQL codeUPDATE #tbSET 序号='' WHERE NOT EXISTS(SELECT TOP 1 * FROM #tb)
[/Quote]

SELECT * into #tb FROM TA WHERE 序号='05021604'
UPDATE #tbSET 序号='' WHERE NOT EXISTS(SELECT TOP 1 * FROM #tb)

这样试试
百年树人 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 good212164 的回复:]
05021604 臧海梅 假日加班 0.50
臧海梅 平时加班 2.00
如上是结果,将第一个字段相同的放一个就好了。类似于excel的合并单元格。
[/Quote]

---测试数据---
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([col1] varchar(8),[col2] varchar(6),[col3] varchar(8),[col4] numeric(3,2))
insert [tb]
select '05021604','臧海梅','假日加班',0.50 union all
select '05021604','臧海梅','平时加班',2.00

---查询---
select
col1=case when exists(select 1 from tb where col1=t.col1 and col3<t.col3) then '' else col1 end,
col2,
col3,
col4
from
tb t


---结果---
col1 col2 col3 col4
-------- ------ -------- -----
05021604 臧海梅 假日加班 .50
臧海梅 平时加班 2.00

(所影响的行数为 2 行)
SQL77 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 good212164 的帖子:]
05021604 臧海梅 假日加班 0.50
05021604 臧海梅 平时加班 2.00
这样两条记录,我能在sql语句上修改下,将第一个栏位合并吗(像excel合并单元格那样)。谢了
[/Quote]

UPDATE TB SET 序号='' WHERE NOT EXISTS(SELECT TOP 1 * FROM TB)
好帅的一条鱼 2009-05-18
  • 打赏
  • 举报
回复
05021604 臧海梅 假日加班 0.50
臧海梅 平时加班 2.00
如上是结果,将第一个字段相同的放一个就好了。类似于excel的合并单元格。
htl258_Tony 2009-05-18
  • 打赏
  • 举报
回复
结果要什么样?
好帅的一条鱼 2009-05-18
  • 打赏
  • 举报
回复
没有加序号呢,第二行不显示要怎么做呢?
百年树人 2009-05-18
  • 打赏
  • 举报
回复
合并不行,第二行不显示就可以了,前面有没有序号?

34,594

社区成员

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

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