首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在SQL Server中选择每个id组的前2位

在SQL Server中,要选择每个id组的前2位,可以使用SUBSTRINGROW_NUMBER()窗口函数。假设您有一个名为myTable的表,其中包含一个名为id的列,您可以使用以下查询:

代码语言:sql
复制
WITH RankedItems AS (
    SELECT
        id,
        SUBSTRING(id, 1, 2) AS id_prefix,
        ROW_NUMBER() OVER (PARTITION BY SUBSTRING(id, 1, 2) ORDER BY id) AS row_num
    FROM
        myTable
)
SELECT
    id,
    id_prefix
FROM
    RankedItems
WHERE
    row_num <= 2
ORDER BY
    id_prefix,
    id;

这个查询首先使用WITH子句创建一个名为RankedItems的临时结果集,其中包含原始表中的id列、id列的前2位(使用SUBSTRING函数获取)以及一个名为row_num的窗口函数,该函数按照id列的前2位对数据进行分区,并按照id列对数据进行排序。

然后,在主查询中,我们从RankedItems中选择idid_prefix列,并仅选择row_num小于等于2的行,以获取每个id组的前2位。最后,我们按照id_prefixid对结果进行排序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券