<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>offset &#8211; Database Research &amp; Development</title>
	<atom:link href="https://www.dbrnd.com/tag/offset/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbrnd.com</link>
	<description>BIGData &#124; NoSQL &#124; MSSQL &#124; MySQL &#124; PostgreSQL</description>
	<lastBuildDate>Mon, 20 Nov 2017 05:55:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.6</generator>
	<item>
		<title>SQL Server: Database Developer (T-SQL) Interview Questions and Answers (Day-11)</title>
		<link>https://www.dbrnd.com/2016/06/sql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11/</link>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Wed, 22 Jun 2016 19:18:03 +0000</pubDate>
				<category><![CDATA[SQL Server Interview]]></category>
		<category><![CDATA[answers]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Database Developer]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[dbrnd]]></category>
		<category><![CDATA[fetch]]></category>
		<category><![CDATA[Hekaton]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[memory database]]></category>
		<category><![CDATA[memory table]]></category>
		<category><![CDATA[offset]]></category>
		<category><![CDATA[Pivot]]></category>
		<category><![CDATA[questions]]></category>
		<category><![CDATA[schemabinding]]></category>
		<category><![CDATA[SQL Query]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Server Administrator]]></category>
		<category><![CDATA[SQL Server Monitoring]]></category>
		<category><![CDATA[SQL Server Performance Tunning]]></category>
		<category><![CDATA[SQL Server Tips and Tricks]]></category>
		<category><![CDATA[T-SQL]]></category>
		<category><![CDATA[TSQL]]></category>
		<category><![CDATA[unpivot]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=3066</guid>

					<description><![CDATA[What is In-memory Database? Database Theory: What is In-memory Database? What is Hekaton in SQL Server 2014? SQL Server 2014: What is Hekaton? How to create memory optimized table in SQL Server 2014? SQL Server 2014: Create Memory Optimized File Group and Table I want to turn the unique record from multiple rows to multiple [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&amp;linkname=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&amp;linkname=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&amp;linkname=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&amp;linkname=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&amp;linkname=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&amp;linkname=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F06%2Fsql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11%2F&#038;title=SQL%20Server%3A%20Database%20Developer%20%28T-SQL%29%20Interview%20Questions%20and%20Answers%20%28Day-11%29" data-a2a-url="https://www.dbrnd.com/2016/06/sql-server-database-developer-t-sql-interview-questions-and-answers-memory-hekaton-offset-fetch-pivot-unpivot-with-schemabinding-day-11/" data-a2a-title="SQL Server: Database Developer (T-SQL) Interview Questions and Answers (Day-11)"></a></p><p><strong>What is In-memory Database?</strong></p>
<blockquote class="wp-embedded-content" data-secret="20p6VsNGKF"><p><a href="https://www.dbrnd.com/2015/12/database-theory-what-is-in-memory-database/">Database Theory: What is In-memory Database?</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2015/12/database-theory-what-is-in-memory-database/embed/#?secret=20p6VsNGKF" data-secret="20p6VsNGKF" width="600" height="338" title="&#8220;Database Theory: What is In-memory Database?&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p><strong>What is Hekaton in SQL Server 2014?</strong></p>
<blockquote class="wp-embedded-content" data-secret="PGyhLLADrO"><p><a href="https://www.dbrnd.com/2016/01/sql-server-2014-what-is-hekaton/">SQL Server 2014: What is Hekaton?</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2016/01/sql-server-2014-what-is-hekaton/embed/#?secret=PGyhLLADrO" data-secret="PGyhLLADrO" width="600" height="338" title="&#8220;SQL Server 2014: What is Hekaton?&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p><strong>How to create memory optimized table in SQL Server 2014?</strong></p>
<blockquote class="wp-embedded-content" data-secret="pMRG55kUs9"><p><a href="https://www.dbrnd.com/2016/01/sql-server-2014-create-memory-optimized-file-group-and-table/">SQL Server 2014: Create Memory Optimized File Group and Table</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2016/01/sql-server-2014-create-memory-optimized-file-group-and-table/embed/#?secret=pMRG55kUs9" data-secret="pMRG55kUs9" width="600" height="338" title="&#8220;SQL Server 2014: Create Memory Optimized File Group and Table&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p><strong>I want to turn the unique record from multiple rows to multiple column values. Is it possible in SQL Server?</strong></p>
<blockquote><p>Yes, We can do this task using PIVOT.</p>
<p>SQL Server has a PIVOT relational operator to turn the unique values of a specified column from multiple rows into multiple column values in the output (cross-tab), effectively rotating a table. It also allows performing aggregations, wherever required, for column values that are expected in the final output. The basic syntax for a PIVOT relational operator looks like this:</p></blockquote>
<blockquote><p>
</p><pre class="crayon-plain-tag">SELECT [ColumnNames] FROM [TableName]
PIVOT
(
AggregateFunction([ColumnToBeAggregated])
FOR PivotColumn IN ([PivotColumnValues])
) AS Alias</pre><p>
</p></blockquote>
<p><strong>Do you know about the UNPIVOT?</strong></p>
<blockquote><p>UNPIVOT is another relational operator in SQL Server that performs almost the reverse operation of PIVOT, by rotating column values into rows values.</p>
<p>Using UNPIVOT, Do you think that you can get all correct value which are pivoted using PIVOT?</p>
<p>If you refer back, I said UNPIVOT is almost the reverse of the PIVOT operator; this means it might or might not be exactly the same. The reason is, Pivot performs aggregation while rotating row values into column values and might merge possible multiple row values into single column value in the output.</p></blockquote>
<p><strong>What is the WITH CHECK OPTION clause for a view?</strong></p>
<blockquote><p>The WITH CHECK OPTION for a view prevents data modifications (to the data) that do not confirm to the WHERE clause of the view definition. This allows data to be updated via the view, but only if it belongs in the view.</p></blockquote>
<p><strong>How you are checking that record is exists in database or not?</strong></p>
<p><strong>Using EXISTS clause:</strong></p><pre class="crayon-plain-tag">IF EXISTS(SELECT 1 FROM dbo.Customer WITH(NOLOCK) WHERE CustId = @CustId)
    BEGIN
        PRINT 'Record Exists'
    END
ELSE
    BEGIN
        PRINT 'Record doesn''t Exists'
    END
END IF;</pre><p>
<strong>What is the meaning of the WITH SCHEMABINDING clause?</strong></p>
<ul>
<li>SCHEMABINDING binds the view to the schema of the underlying table or tables. When SCHEMABINDING is specified, the base table or tables cannot be modified in a way that would affect the view definition.</li>
<li>The view definition itself must first be modified or dropped to remove dependencies on the table that is to be modified.</li>
<li>All referenced objects must be in the same database. Views or tables that participate in a view created with the SCHEMABINDING clause cannot be dropped unless that view is dropped or changed so that it no longer has schema binding. Otherwise, the Database Engine raises an error.</li>
<li>Also, executing ALTER TABLE statements on tables that participate in views that have schema binding fail when these statements affect the view definition.</li>
<li>The implementation of SCHEMABINDING would increase stability and performance of the system, but also increase the amount of developers’ work.</li>
</ul>
<p><strong>Can we use WITH SCHEMABINDING in Stored Procedures?</strong></p>
<blockquote><p>No: We cannot use WITH SCHEMABINDING in stored procedures.</p></blockquote>
<p><strong>What are the main disadvantages of the WITH SCHEMABINDING clause?</strong></p>
<blockquote><p>It would take more time to make changes in tables’ structure. If I just want to change the size of one column, I will need to modify before and after several views.</p>
<p>The automated test of the application can catch all broken views and functions. This will not increase the amount of developers’ work.</p>
<p>You can not change the collation of a database with schemabound objects.</p></blockquote>
<p><strong>What do you know about the OFFSET FETCH clause of the SQL Server 2012?</strong></p>
<blockquote><p>The OFFSET-FETCH clause provides you with an option to fetch only a window or page of results from the result set. OFFSET-FETCH can be used only with the ORDER BY clause.</p>
<p><strong>OFFSET:</strong> Specifies the number of rows to skip, before starting to return rows from the query expression. The argument for the OFFSET clause can be an integer or expression that is greater than or equal to zero. You can use ROW and ROWS interchangeably.</p>
<p><strong>FETCH:</strong> Specifies the number of rows to return, after processing the OFFSET clause. The argument for the FETCH clause can be an integer or expression that is greater than or equal to one. You can use ROW and ROWS interchangeably. Similarly, FIRST and NEXT can be used interchangeably.</p></blockquote>
<p><strong>Please write a script or logic of custom paging using OFFSET and FETCH NEXT.</strong></p>
<blockquote class="wp-embedded-content" data-secret="ogXSF1WZTo"><p><a href="https://www.dbrnd.com/2016/01/sql-server-2012-custom-paging-using-offset-and-fetch-next/">SQL Server 2012: Custom paging using OFFSET and FETCH NEXT</a></p></blockquote>
<p><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2016/01/sql-server-2012-custom-paging-using-offset-and-fetch-next/embed/#?secret=ogXSF1WZTo" data-secret="ogXSF1WZTo" width="600" height="338" title="&#8220;SQL Server 2012: Custom paging using OFFSET and FETCH NEXT&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<p><strong>What are the limitations of OFFSET and FETCH clause of the SQL Server 2012?</strong></p>
<ul>
<li>ORDER BY is mandatory to use OFFSET and FETCH clause.</li>
<li>OFFSET clause is mandatory with FETCH. You can never use, ORDER BY … FETCH.</li>
<li>TOP cannot be combined with OFFSET and FETCH in the same query expression.</li>
<li>The OFFSET/FETCH rowcount expression can be any arithmetic, constant, or parameter expression that will return an integer value. The rowcount expression does not support scalar sub-queries.</li>
</ul>
<p><strong>What is the maximum size of a VARCHAR(MAX) variable?</strong></p>
<blockquote><p>Maximum size of a VARCHAR(MAX) is 2GB.</p></blockquote>
<p><strong>What is BCP? When is it used?</strong></p>
<blockquote><p>It is a tool used to duplicate enormous quantity of information from tables and views. It does not facsimile the structures same as foundation to target. BULK INSERT command helps to bring in a data folder into a record, table or view in a user-specific arrangement.</p></blockquote>
<p><strong>When is the Explicit Cursor Used ?</strong></p>
<blockquote><p>If the developer needs to perform the row by row operations for the result set containing more than one row, then he unambiguously declares a pointer with a name. They are managed by OPEN, FETCH and CLOSE.</p>
<p>%FOUND, %NOFOUND, %ROWCOUNT and %ISOPEN characteristics are used in all types of pointers.</p></blockquote>
<p><strong>How can a SQL Developer prevent T-SQL code from running on a production SQL Server?</strong></p>
<blockquote><p>Use IF logic with the @@SERVERNAME function compared against a string with a RETURN command before any other logic.</p></blockquote>
<p><strong>Can you create foreign key constraints on temporary tables?</strong></p>
<blockquote><p>No: You cannot create a foreign key constraint on temporary tables.</p></blockquote>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server 2012: Custom paging using OFFSET and FETCH NEXT</title>
		<link>https://www.dbrnd.com/2016/01/sql-server-2012-custom-paging-using-offset-and-fetch-next/</link>
					<comments>https://www.dbrnd.com/2016/01/sql-server-2012-custom-paging-using-offset-and-fetch-next/#comments</comments>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Sun, 24 Jan 2016 17:22:28 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[Custom Paging]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[dbrnd]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[offset]]></category>
		<category><![CDATA[SQL Query]]></category>
		<category><![CDATA[SQL Server Administrator]]></category>
		<category><![CDATA[SQL Server Monitoring]]></category>
		<category><![CDATA[SQL Server Performance Tunning]]></category>
		<category><![CDATA[SQL Server Tips and Tricks]]></category>
		<category><![CDATA[TSQL]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=1380</guid>

					<description><![CDATA[In this post, I am sharing a demo on SQL Server 2012 Pagination or Custom paging query using OFFSET and FETCH. Whenever thousands or millions of rows are returning from a database at that time paging is required. Using custom paging, we can return only limited data for a particular page. For example, database stored [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&amp;linkname=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&amp;linkname=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&amp;linkname=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&amp;linkname=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&amp;linkname=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&amp;linkname=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F01%2Fsql-server-2012-custom-paging-using-offset-and-fetch-next%2F&#038;title=SQL%20Server%202012%3A%20Custom%20paging%20using%20OFFSET%20and%20FETCH%20NEXT" data-a2a-url="https://www.dbrnd.com/2016/01/sql-server-2012-custom-paging-using-offset-and-fetch-next/" data-a2a-title="SQL Server 2012: Custom paging using OFFSET and FETCH NEXT"></a></p><p>In this post, I am sharing a demo on SQL Server 2012 Pagination or Custom paging query using OFFSET and FETCH.</p>
<blockquote><p>Whenever thousands or millions of rows are returning from a database at that time paging is required.<br />
Using custom paging, we can return only limited data for a particular page.</p></blockquote>
<p>For example, database stored procedure returned 10,00,00 records at one call. How can you arrange this many data into the application grid or any report?</p>
<p>In this kind of requirement, database paging is playing an important role.<br />
The Application has to call a stored procedure using two main parameters:</p>
<blockquote><p>Page number<br />
Page size</p></blockquote>
<p>SQL Server 2012 introduced powerful <b>FETCH </b>and <b>OFFSET </b>features.</p>
<p><b>FETCH and OFFSET retires only small portion of rows from the primary result set.</b></p>
<p>Using FETCH, you can set a total number of rows. </p>
<p>Using OFFSET, you can skip some rows.</p>
<p><strong>First, create a sample table and insert sample 10000 records. </strong></p><pre class="crayon-plain-tag">CREATE TABLE tbl_SamplePaging 
(
	EmpID INT IDENTITY(1,1)
	,EmpName VARCHAR(250)
)
GO

INSERT INTO tbl_SamplePaging(EmpName) 
VALUES ('ABCD' + CAST((SELECT MAX(EmpID) FROM tbl_SamplePaging) AS VARCHAR))
GO 10000</pre><p>
<p><strong>The custom paging query using PageSize and PageNumber parameters:</strong></p><pre class="crayon-plain-tag">DECLARE
  @PageSize INT = 10,
  @PageNumber  INT = 1;

SELECT 
	COUNT(1) OVER() AS TotalCount
	,EmpID
	,EmpName	
FROM tbl_SamplePaging
ORDER BY EmpID 
	OFFSET (@PageNumber-1)*@PageSize ROWS
	FETCH NEXT @PageSize ROWS ONLY</pre><p>
<p><strong>The result of first page with 10 records:</strong></p>
<p><a href="https://www.dbrnd.com/wp-content/uploads/2016/01/SQLServerCustomPaging.png" rel="attachment wp-att-1384"><img loading="lazy" decoding="async" class="alignnone wp-image-1384 size-full" title="SQL Server Custom Paging" src="https://www.dbrnd.com/wp-content/uploads/2016/01/SQLServerCustomPaging.png" alt="SQL Server Custom Paging" width="219" height="224" srcset="https://www.dbrnd.com/wp-content/uploads/2016/01/SQLServerCustomPaging.png 219w, https://www.dbrnd.com/wp-content/uploads/2016/01/SQLServerCustomPaging-150x153.png 150w" sizes="auto, (max-width: 219px) 100vw, 219px" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbrnd.com/2016/01/sql-server-2012-custom-paging-using-offset-and-fetch-next/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQL Paging Query using LIMIT and OFFSET</title>
		<link>https://www.dbrnd.com/2015/05/postgresql-paging-query-limit-offset/</link>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Wed, 27 May 2015 16:59:50 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[limit]]></category>
		<category><![CDATA[offset]]></category>
		<category><![CDATA[paging]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[Postgres Query]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[PostgreSQL Administrator]]></category>
		<category><![CDATA[PostgreSQL Programming]]></category>
		<category><![CDATA[PostgreSQL Tips and Tricks]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=194</guid>

					<description><![CDATA[In this post, I am going to demonstrate the PostgreSQL Pagination or Custom paging query using OFFSET and LIMIT. Whenever thousands or millions of rows are returning from the database at that time paging is required. Using custom paging we can return only limited data for a particular page. For example, database stored procedure returned [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&amp;linkname=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&amp;linkname=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&amp;linkname=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&amp;linkname=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&amp;linkname=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&amp;linkname=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2015%2F05%2Fpostgresql-paging-query-limit-offset%2F&#038;title=PostgreSQL%20Paging%20Query%20using%20LIMIT%20and%20OFFSET" data-a2a-url="https://www.dbrnd.com/2015/05/postgresql-paging-query-limit-offset/" data-a2a-title="PostgreSQL Paging Query using LIMIT and OFFSET"></a></p><p>In this post, I am going to demonstrate the PostgreSQL Pagination or Custom paging query using OFFSET and LIMIT.</p>
<blockquote><p>Whenever thousands or millions of rows are returning from the database at that time paging is required.</p>
<p>Using custom paging we can return only limited data for a particular page.</p>
<p>For example, database stored procedure returned 10,00,00 records at one call.<br />
How can you arrange this many data into the application grid or any report?</p>
<p>In this kind of requirement, database paging is playing an important role.</p></blockquote>
<p>The Application has to call a stored procedure using two primary parameters.	</p>
<blockquote><p>Page number<br />
	Page size</p></blockquote>
<p>PostgreSQL provides powerful <b>LIMIT </b>and <b>OFFSET </b>features.</p>
<p><b>LIMIT and OFFSET fetches only small portion of rows from a primary the result set. </b></p>
<p>Using LIMIT you can set a total number of rows which are limited.</p>
<p>Using OFFSET you can skip a number of rows which number is defined by OFFSET.</p>
<p><a href="http://www.postgresql.org/docs/7.3/static/queries-limit.html" target="_blank">For more details please visit this official document.</a></p>
<p>Below is a stored function for Custom Paging. </p>
<p><b>Below, is a created one Employee table with 10 rows.</b></p>
<pre class="crayon-plain-tag">CREATE TABLE Employee
(
 EmpID SERIAL
 ,EmpName CHARACTER VARYING(50)
 ,Gender CHAR(1)
 ,AGE SMALLINT
);
INSERT INTO Employee 
(
 EmpName 
 ,Gender 
 ,AGE 
)
VALUES 
 ('Anvesh','M',27)
 ,('Mohan','M',30)
 ,('Roy','M',31)
 ,('Meera','F',27)
 ,('Richa','F',26)
 ,('Martin','M',35)
 ,('Mahesh','M',38)
 ,('Paresh','M',22)
 ,('Alina','F',21)
 ,('Alex','M',24);</pre>
<p><b>Below is custom paging stored procedure:</b></p>
<pre class="crayon-plain-tag">CREATE OR REPLACE FUNCTION fn_GetEmployeeData
(
 Paging_PageSize INTEGER = NULL
 ,Paging_PageNumber INTEGER = NULL   
)
RETURNS TABLE 
( 
 outEmpID INTEGER
 ,outEmpName CHARACTER VARYING
 ,outGender CHAR(1)
 ,outAge SMALLINT
) AS
$BODY$
DECLARE PageNumber BIGINT;
 
BEGIN
 /* ***************************************************************
 Construct Custom paging parameter...
 **************************************************************** */
 IF (paging_pagesize IS NOT NULL AND paging_pagenumber IS NOT NULL) THEN
  PageNumber := (Paging_PageSize * (Paging_PageNumber-1)); 
 END IF; 
  
 /* ************************************************
 Custome paging SQL Query construction.......
 ************************************************ */
 RETURN QUERY
 SELECT
  EmpID
  ,EmpName
  ,Gender
  ,Age
 FROM public.Employee
 ORDER BY EmpID
 LIMIT Paging_PageSize
 OFFSET PageNumber; 

 EXCEPTION WHEN OTHERS THEN 
 RAISE;
END;
$BODY$
LANGUAGE 'plpgsql';</pre>
<p><b>Now execute some sample:</b></p>
<pre class="crayon-plain-tag">SELECT *FROM public.fn_GetEmployeeData(2,2)</pre>
Above sample<b> </b>only return two row at second page, mean row number 3 and 4.</p>
<p><a href="https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult1.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-199 size-full" title="PostgreSQL LIMIT OFFSET Paging" src="https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult1.png" alt="PagingResult1" width="358" height="132" srcset="https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult1.png 358w, https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult1-300x111.png 300w, https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult1-150x55.png 150w" sizes="auto, (max-width: 358px) 100vw, 358px" /></a></p><pre class="crayon-plain-tag">SELECT *FROM public.fn_GetEmployeeData(4,2)</pre><p>
Above sample only return four row at second page, mean row number 5 to 8</p>
<p><a href="https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult2.png"><img loading="lazy" decoding="async" class="aligncenter wp-image-200 size-full" title="PostgreSQL LIMIT OFFSET Paging " src="https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult2.png" alt="PagingResult2" width="346" height="143" srcset="https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult2.png 346w, https://www.dbrnd.com/wp-content/uploads/2015/05/PagingResult2-300x124.png 300w" sizes="auto, (max-width: 346px) 100vw, 346px" /></a></p>
<blockquote><p><span style="color: #ff0000;"><b>Please Note:<br />
Whenever you are using LIMIT at that time do not forget to use default ORDER BY which helps LIMIT to restricting data into a particular order. </b></span></p></blockquote>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
