sql - 从表格中选择 TOP x

标签 sql select

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

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/

相关文章:

sql - 如何将大sql转储文件分割成小块并维护原始文件中的每条记录,尽管后来删除了其他记录

sql - 如何防止coldfusion sql-injection on order by子句

MySQL 使用 NOT IN 作为临时表

mysql - 通过Mysql查询动态获取排名

php - 需要一些关于数据库模式设计的建议

c# - 这个简单的代码产生了死锁。包括简单的示例程序

mysql - 当所有表都是 MYISAM 时,打开 INNODB 引擎是否安全?

MYSQL INSERT INTO FROM SELECT UPDATE WHERE 不存在

mysql - 统计表中的项目,涉及的表字段枚举类型

mysql - 如何将多个列合并为 char 作为分隔符(sql 查询)