基于字母顺序生成数字

时间:2016-08-15 06:31:52

标签: sql sql-server sql-server-2008 select

我正在尝试在SQL Server 2008中编写一个存储过程,它应该根据另一列的第一个字母生成ID号,如下所示:

Auto Generation of ID alphabetically

我正在使用SQL Server 2008.将不胜感激任何帮助。此致

2 个答案:

答案 0 :(得分:1)

您可以使用rank窗口函数生成这些ID:

SELECT 10000 + RANK() OVER (ORDER BY field2 ASC) as field1, field2
FROM   my_table

编辑:
我误解了这个问题。您需要为第一个字母和整个名称单独排名:

SELECT 10000 *
       RANK() OVER (PARTITION BY LEFT(field2, 1) ORDER BY field2 ASC) + 
       RANK() OVER (ORDER BY field2 ASC) as field1, 
       field2
FROM   my_table

答案 1 :(得分:1)

所以A全部是1XXXXB的{​​{1}}到2XXXX的{​​{1}}。试试这个:

Z