我正在使用sql server 2008,在其中遇到一些麻烦,我找不到一列
TblMaster
ID Name City
1 Hiren Juanagadh
2 Ashish Gandhinagar
2 Mayur Ahmedabad
3 Hitesh Junagadh
4 Nipun Ahmedabad
4 Vivek Rajkot
4 Samir Surat
5 Sagar Vadodara
现在我想要Anoter列CountId,所以我想要如下所示的输出
TblMaster
ID Name City CountId
1 Hiren Juanagadh 0
2 Ashish Gandhinagar 2
2 Mayur Ahmedabad 2
3 Hitesh Junagadh 0
4 Nipun Ahmedabad 3
4 Vivek Rajkot 3
4 Samir Surat 3
5 Sagar Vadodara 0
表示如果Id列仅一个,则CountId = 0如果Id列大于一,则CountId = Idcolumn的计数
准备表
declare @T table (
id int,
Name nvarchar(6),
City nvarchar(20))
insert @T values
( 1 , 'Hiren', 'Juanagadh'),
( 2 , 'Ashish', 'Gandhinagar'),
( 2 , 'Mayur', 'Ahmedabad'),
( 3 , 'Hitesh', 'Junagadh'),
( 4 , 'Nipun', 'Ahmedabad'),
( 4 , 'Vivek', 'Rajkot'),
( 4 , 'Samir', 'Surat'),
( 5 , 'Sagar', 'Vadodara')
选择声明
没有1-> 0校正
SELECT *, CountID = count(*) over (Partition by ID)
from @T
具有1-> 0校正
select id, Name,City,CountID = case when CountID = 1 then 0 else CountID end
from (
SELECT *, CountID = count(*) over (Partition by ID)
from @T )
RES
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句