n是一个变量,表中有一列是1-n之间的数字,其余列在插入时已经确定。假如n为4,则在指定表中插入的行如下key number
a 1
a 2
a 3
a 4其中a是一个变量,每次插入可能不同,也就是说,以后还可能插入key=b,number=1-n的行。之前采用一个办法,就是事先有一个只有1列的表,那个表的唯一字段就是从1到一个较大的数字。
插入时采用select top n 的方法。但如果n的变化范围比较大,这种方法就不能确保了,有没有什么好办法?我目前能想到的办法就是用循环插入。
a 1
a 2
a 3
a 4其中a是一个变量,每次插入可能不同,也就是说,以后还可能插入key=b,number=1-n的行。之前采用一个办法,就是事先有一个只有1列的表,那个表的唯一字段就是从1到一个较大的数字。
插入时采用select top n 的方法。但如果n的变化范围比较大,这种方法就不能确保了,有没有什么好办法?我目前能想到的办法就是用循环插入。
解决方案 »
- 多个表,多个列转换为1列,并消除空白
- 根据某列数据的大小在另一列的后面加序号
- 数据库有600万条数据,查询出每前100万条的前6条数据。
- 行转列求和
- 如何在MYSQL中用SQL语句实现“判断select所得的结果集中是否有查询结果”
- SQL 2005启动SERVER服务时出问题!
- '号如何输
- 服务器: 消息 8139,级别 16,状态 1,行 1 外键中引用列的数目与被引用列的数目不等,表 '分数'。 服务器: 消息 8139,级别 16,状态 1,
- 请问 大侠,我用sqlserver建立了一数据库,然后想建立一个跟sqlserver一样的access数据库。如何导入数据库结构及数据内容一起导入access
- 绝对经典的查询问题三!
- 急!数据库不能附加,怎么回事?
- 求SQL语句,去掉字符中两个括号"[","]"中间的内容,包括"[]"
建个数字表
id
1
2
3
...
n
insert tb select @a, id from 数字表 where id<@n
L1 AS (SELECT 1 AS Id UNION ALL SELECT ID + 1 from L1 WHERE ID < 4),
L2 AS (select [key]='a'union select'b'union select'c')
SELECT [key] , ID
FROM L1,L2
ORDER BY 1,2
/*key ID
---- -----------
a 1
a 2
a 3
a 4
b 1
b 2
b 3
b 4
c 1
c 2
c 3
c 4(12 row(s) affected)*/
select
'a',
ID
from
T
where ID<=@number
select row_number()over(order by a.id) as i from syscolumns a,syscolumns b)a
where i<100
declare @t table (id int identity(1,1),unused int)
insert into @t
select top 1000 1 from sysobjects a, sysobjects bselect
'a', id
from @t
where id<100