The function 'ntile' takes only a positive int or bigint expression as its input.

Error Message:
Msg 4116, Level 15, State 1, Line 1
The function ‘ntile’ takes only a positive int or bigint expression as its input.

Severity level:
15.

Description:
This error message appears when you try to call the NTILE function without providing a valid input expression.

Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.

Resolution:
Errors of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. NTILE can only take integer expressions as input.

Versions:
This error message was introduced with SQL Server 2005.

Example(s):
USE tempdb;
GO
IF OBJECT_ID(‘tempdb..#t’) > 0
 DROP TABLE #t
GO
CREATE TABLE #t
(
 id INT
)
INSERT INTO #t SELECT 10
GO
SELECT NTILE(0) OVER(ORDER BY ID) AS rid, id
  FROM #t
 GROUP BY id

Remarks:
In the above example we try to call the NTILE function with a 0 as input expression. This raises the error.

]]>

Leave a comment

Your email address will not be published.