这是一个非常独特的问题,我不知道是否有答案。我试图根据另一个表的值输入可变数量的记录以插入到表中。这就是我尝试过的
insert into TABLE1
select TOP cast((select Value from TABLE3 WHERE column_name = 'blah') as int) * from TABLE2
因此,我试图从表3中获取值,并使用该值从表2中获取要插入表1中的前x条记录。
列出的错误是强制转换附近的语法不正确。
最佳答案
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 - 选择顶部x从表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23226348/