Returns paginated results that includes the total number of rows found.
-- Source: https://timdietrich.me/blog/netsuite-suiteql-query-pagination/ WITH EmployeeData AS ( SELECT ID, FirstName, LastName, Email FROM Employee WHERE ( Email LIKE '%@netsuite.com' ) AND ( LastName IS NOT NULL ) AND ( FirstName IS NOT NULL ) ), EmployeeSummary AS ( SELECT COUNT(*) AS RecordCount FROM EmployeeData ) SELECT * FROM ( SELECT ROWNUM - 1 AS RN, * FROM ( SELECT * FROM ( SELECT RecordCount, NULL AS ID, NULL AS LastName, NULL AS FirstName, NULL AS Email FROM EmployeeSummary UNION ALL SELECT 0, EmployeeData.ID, EmployeeData.LastName, EmployeeData.FirstName, EmployeeData.Email FROM EmployeeData ) ORDER BY RecordCount DESC, UPPER( LastName ), UPPER( FirstName ) ) ) WHERE ( RN = 0 ) OR ( RN BETWEEN 1 AND 10 )
Click here to return to the list of available queries.
Hello, I’m Tim Dietrich. I design and build custom software for businesses running on NetSuite — from mobile apps and Web portals to Web APIs and integrations.
I’ve created several widely used open-source solutions for the NetSuite community, including the SuiteQL Query Tool and SuiteAPI, which help developers and businesses get more out of their systems.
I’m also the founder of SuiteStep, a NetSuite development studio focused on pushing the boundaries of what’s possible on the platform. Through SuiteStep, I deliver custom software and AI-driven solutions that make NetSuite more powerful, accessible, and future-ready.
Copyright © 2025 Tim Dietrich.