日期:2014-05-18 浏览次数:20434 次
--> 测试数据: @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()这个系统函数