日期:2014-05-18 浏览次数:20523 次
--> 测试数据: @order
declare @order table
(name varchar(4),address varchar(4),mobile bigint,time datetime)
insert into @order
select '张三','北京',13888888888,'2008/02/02' union all
select '李四','武汉',13688878787,null union all
select '王五','北京',13888888888,null
select name,address,mobile=
ltrim(mobile)+'('+ltrim((select count(*) from @order where mobile=t.mobile))+')'
from @order t
/*
name address mobile
---- ------- --------------------------------------
张三 北京 13888888888(2)
李四 武汉 13688878787(1)
王五 北京 13888888888(2)
*/
------解决方案--------------------
--> 测试数据:[order]
if object_id('[order]') is not null
drop table [order]
create table [order](
[name] varchar(4),
[address] varchar(4),
[mobile] bigint
)
go
insert [order]
select '张三','北京',13888888888 union all
select '李四','武汉',13688878787 union all
select '王五','北京',13888888888
go
select *,
COUNT(1)over(partition by [mobile]) as times
from [order]
/*
name address mobile times
------------------------------------------
李四 武汉 13688878787 1
王五 北京 13888888888 2
张三 北京 13888888888 2
*/
--不知道你的版本支不支持count()over()这个系统函数