这是一个相当独特的问题,我不知道是否有答案。我试图根据另一个表的值输入可变数量的记录以插入到表中。这是我试过的
insert into TABLE1
select TOP cast((select Value from TABLE3 WHERE column_name = 'blah') as int) * from TABLE2
所以我试图从表 3 中获取值,并使用该值从表 2 中获取前 x 条记录以插入到表 1 中。
列出的错误是 Incorrect syntax near cast。
最佳答案
OP 不指定他们使用的数据库,但 SQL Server 允许使用变量。试试看:
declare @YourTable table (RowID int identity(1,1), ColA char(4))
INSERT INTO @YourTable values ('a');INSERT INTO @YourTable values ('aa');INSERT INTO @YourTable values ('aaa');
INSERT INTO @YourTable values ('b');INSERT INTO @YourTable values ('bb');INSERT INTO @YourTable values ('bbb');
INSERT INTO @YourTable values ('c');INSERT INTO @YourTable values ('cc');INSERT INTO @YourTable values ('ccc');
declare @x int=5
select top (@x) * from @YourTable
输出:
RowID ColA
----------- ----
1 a
2 aa
3 aaa
4 b
5 bb
(5 row(s) affected)
关于sql - 从表格中选择 TOP x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23226348/