日期:2014-05-16  浏览次数:20576 次

求生成编号的SQL语句
想生成一下编号,JOBNO一样编号就不显示了
NO    jobno
1 AMFU3220722
2 AMFU8745354
3 AMFU8858807
AMFU8858807
4 BHCU3150965
BHCU3150965
5 BHCU4518687
------解决方案--------------------
----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2014-03-28 15:00:26
-- Version:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
-- Jul  9 2008 15:11:34 
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Enterprise Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go 
create table [tb]([jobno] varchar(11))
insert [tb]
select 'AMFU3220722' union all
select 'AMFU8745354' union all
select 'AMFU8858807' union all
select 'AMFU8858807' union all
select 'BHCU3150965' union all
select 'BHCU3150965' union all
select 'BHCU4518687'
--------------开始查询--------------------------
;WITH f AS 
(
SELECT id=ROW_NUMBER()OVER(ORDER BY GETDATE()),* FROM dbo.tb
)
,f2 AS 
(
SELECT no=(SELECT COUNT(DISTINCT jobno) FROM f WHERE id<=a.id),jobno FROM f  AS a
)

SELECT CASE WHEN col=1 THEN LTRIM(no) ELSE '' END AS NO ,jobno FROM 
(SELECT ROW_NUMBER()OVER(PARTITION BY no ORDER BY GETDATE()) AS col ,* FROM f2) AS t

----------------结果----------------------------
/* NO           jobno
------------ -----------
1            AMFU3220722
2            AMFU8745354
3            AMFU8858807
             AMFU8858807
4            BHCU3150965
             BHCU3150965
5            BHCU4518687

(7 行受影响)
*/

------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-03-28 14:55:45
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]')&nbs