【发布时间】:2023-02-21 23:05:22
【问题描述】:
我试图从 No_Occupation 表中选择一个列名 MSISDN,然后从结果中选择前 300 行。这是我使用的脚本:
WITH PagingCte AS (
SELECT [Account ID],[User Name],[Last Name],[User Category],
Row_Num = Row_Number() OVER (ORDER BY [User Name])
From AllBalance_20230119)
SELECT [Account ID],[User Name],[Last Name],Row_Num
FROM PagingCte
WHERE [Account ID] IN (SELECT [MSISDN] FROM No_Occupation)
AND Row_Num BETWEEN 1 AND 300;
AND [User Category] = 'Subscriber';
但是在我执行脚本之后,我得到了显示的结果。 我错过了什么?
我试过下面的代码
WITH PagingCte AS (
SELECT [Account ID],[User Name],[Last Name],[User Category],
Row_Num = Row_Number() OVER (ORDER BY [User Name])
From AllBalance_20230119)
SELECT [Account ID],[User Name],[Last Name],Row_Num
FROM PagingCte
WHERE [Account ID] IN (SELECT [MSISDN] FROM No_Occupation)
AND Row_Num BETWEEN 1 AND 300;
AND [User Category] = 'Subscriber';
【问题讨论】:
-
您使用的是哪个数据库管理系统?
-
这看起来像 SQL Server,为什么不使用 top 和 order by 呢?
-
欢迎来到堆栈溢出!每个品牌和版本的数据库服务器都有自己的 SQL 方言。尤其是 SQL Server,提供了一个 TOP (300) 子句。请edit你的问题为你使用的数据库添加tag。 postgresql? mysql? sql-server? oracle? google-bigquery? amazon-redshift?其他?
标签: sql