这是一个非常独特的问题,我不知道是否有答案。我试图根据另一个表的值输入可变数量的记录以插入到表中。这就是我尝试过的

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/

10-09 16:00