+ -
当前位置:首页 → 问答吧 → 如何插入10000条特定字符串数据

如何插入10000条特定字符串数据

时间:2011-12-08

来源:互联网

表中有两个字段ID(int类型),StringID(nvarchar类型)。
前提:ID从1到10000,StringID对应指定字符。
要求:ID=1,StringID=A-A0001
   ID=2,StringID=A-A0002
   ……
   ID=1000,StringID=A-A1000

   ID=1001,StringID=A-B1001
   ……
   ID=10000,StringID=A-J1000

SQL语句越简单越好,考虑效率。

作者: liangming1989   发布时间: 2011-12-08

前台去做吧

作者: HEROWANG   发布时间: 2011-12-08

SQL code

;WITH cte AS(
SELECT TOP(10000) rowid=ROW_NUMBER() OVER(ORDER BY GETDATE())
FROM sys.objects AS A,sys.objects AS B
)
SELECT * ,'A-'+CHAR(65+(rowid-1)/1000)+RIGHT(10000+(rowid-1)%1000+1,4)
FROM cte

作者: liangCK   发布时间: 2011-12-08

引用 1 楼 herowang 的回复:

前台去做吧


MS-SQL没有相关的函数实现?

作者: liangming1989   发布时间: 2011-12-08

引用 2 楼 liangck 的回复:
SQL code

;WITH cte AS(
SELECT TOP(10000) rowid=ROW_NUMBER() OVER(ORDER BY GETDATE())
FROM sys.objects AS A,sys.objects AS B
)
SELECT * ,'A-'+CHAR(65+(rowid-1)/1000)+RIGHT(10000+(rowid-1)%1000+1……


NXXXX

作者: HEROWANG   发布时间: 2011-12-08

引用 1 楼 herowang 的回复:

前台去做吧


真速度!佩服。

作者: liangming1989   发布时间: 2011-12-08

引用 1 楼 herowang 的回复:

前台去做吧


啊,引错了~~

作者: liangming1989   发布时间: 2011-12-08

引用 2 楼 liangck 的回复:

SQL code

;WITH cte AS(
SELECT TOP(10000) rowid=ROW_NUMBER() OVER(ORDER BY GETDATE())
FROM sys.objects AS A,sys.objects AS B
)
SELECT * ,'A-'+CHAR(65+(rowid-1)/1000)+RIGHT(10000+(rowid-1)%1000+1,4)
……


佩服佩服!

作者: liangming1989   发布时间: 2011-12-08

SQL code

;with cte as(
select top 10000 ID=row_number() over (order by getdate()) 
from master..spt_values a,master..spt_values b
)
select *,StringID=char((id-1)/1000+65)+right('000'+ltrim((id-1)%1000+1),4) from cte

引用楼主 liangming1989 的回复:
表中有两个字段ID(int类型),StringID(nvarchar类型)。
前提:ID从1到10000,StringID对应指定字符。
要求:ID=1,StringID=A-A0001
   ID=2,StringID=A-A0002
   ……
   ID=1000,StringID=A-A1000

   ID=1001,StringID=A-B1001
   ……
   ……

作者: geniuswjt   发布时间: 2011-12-08

char(65)表示 A

作者: fredrickhu   发布时间: 2011-12-08

引用 8 楼 geniuswjt 的回复:

SQL code

;with cte as(
select top 10000 ID=row_number() over (order by getdate())
from master..spt_values a,master..spt_values b
)
select *,StringID=char((id-1)/1000+65)+right('000'+ltrim((id-1)%1……


不错~你这个可以直接得到我要的结果

作者: liangming1989   发布时间: 2011-12-08