有没有一种方法可以选择特定数量的行而不创建表。例如,如果我使用以下内容:
SELECT 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
它将给我10个,我想要10个新行。
谢谢
您可以使用递归CTE在T-
SQL中生成任意数字序列,如下所示:
DECLARE @start INT = 1;
DECLARE @end INT = 10;
WITH numbers AS (
SELECT @start AS number
UNION ALL
SELECT number + 1
FROM numbers
WHERE number < @end
)
SELECT *
FROM numbers
OPTION (MAXRECURSION 0);
问题内容: 我正在寻找一个SQL查询来选择所有未由同一表上的另一个查询选择的记录。具体来说,我想选择所有具有特定字段(’fieldA’)重复项的记录,然后删除除其中一个记录以外的所有记录。 因此,一条select语句可能类似于以下内容(不起作用!): 如果不可能进行单个查询,那么最有效的解决方案是什么? 问题答案: 具体来说,我想选择所有具有特定字段(’fieldA’)重复项的记录,然后删除除其中
问题内容: 我有一张桌子,桌子之间有一对多的关系。每个记录可以有来自同一张表的n个孩子。例如 给定一个ID,我想递归选择所有文件夹记录的SUM(SIZE)。目标数据库是MySql 5,但是如果它的通用性足以在Oracle和MS- SQL中运行,那将是很好的选择。 我不知道树有多深,可能是1级,可能是50级(或更多) 问题答案: 这可能会有些帮助:http : //mikehillyer.com/a
问题内容: 我有一个包含约50,000行的SQL Server表。我想随机选择大约5,000行。我想到了一种复杂的方法,用“随机数”列创建一个临时表,将我的表复制到该表中,遍历该临时表并用来更新每一行,然后从该表中选择随机数列< 0.1。我正在寻找一种更简单的方法,如果可能的话,可以在一个语句中进行说明。 本文建议使用该功能。这看起来很有希望,但是我看不到如何可靠地选择一定百分比的行。 有人做过吗
问题内容: 我有下表: 我想从一个特定的组中选择前20个不同的名称,该组按该组中最常见的名称排序。对于第1组,此示例的结果将返回(a-3次出现,b-2次出现和c-1次出现)。 谢谢你。 问题答案:
问题内容: 有什么方法可以选择,例如,在T-SQL中(工作的MSSQL)表的前10行? 我想我在Oracle中看到一些定义为rownum元变量的内容,其使用方式如下 但是MSSQL呢? 问题答案: 如果为常数,则可以删除括号: (后者也适用于SQL Server 2000,而前者至少需要2005)
问题内容: 假设我有两个表,“父母”和“孩子”。父子关系是一个多对多关系,可通过标准的交叉引用表来实现。 我想查找使用SQL(特别是MS SQL Server的T-SQL; 2005语法可以接受)的给定子集的所有成员所引用的所有Parent记录。 例如,假设我有: List item Parent Alice Parent Bob Child Charlie references Alice, B