IF OBJECT_ID(N'dbo.GenerateRows') IS NOT NULL DROP FUNCTION dbo.GenerateRows; GO CREATE FUNCTION dbo.GenerateRows (@Count INT) /* https://yabele.blogspot.com/2017/07/mssql-function-to-generate-empty-rows.html */ RETURNS TABLE AS RETURN WITH TenRows AS ( SELECT * FROM (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) AS T(I) ) SELECT TOP(@Count) I = ROW_NUMBER() OVER(ORDER BY (SELECT 1)) FROM TenRows T1 CROSS JOIN TenRows T2 CROSS JOIN TenRows T3 CROSS JOIN TenRows T4 CROSS JOIN TenRows T5 /* SELECT * FROM dbo.GenerateRows(100); */ ;
Showing posts with label ROW_NUMBER. Show all posts
Showing posts with label ROW_NUMBER. Show all posts
Tuesday, 25 July 2017
MSSQL - Function to generate empty rows
There the text of inline table-value function to generate a specified count of empty rows:
Wednesday, 24 August 2016
MSSQL - How to generate range of Dates
There the text of VIEW to generate range of dates between 1.January 2000 and 31.December next year:
IF OBJECT_ID(N'dbo.calendar_dates') IS NOT NULL
DROP VIEW dbo.calendar_dates;
GO
/*
http://yabele.blogspot.de/2016/08/how-to-generate-range-of-dates.html
*/
CREATE VIEW dbo.calendar_dates
AS
WITH
R10 AS (
SELECT * FROM (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) AS T(I)
)
SELECT TOP(DATEDIFF(DAY, '2000-01-01', CAST(YEAR(GETDATE()) + 1 AS CHAR(4)) + '-12-31'))
date_value = DATEADD(DAY, ROW_NUMBER() OVER(ORDER BY (SELECT 1)), '1999-12-31')
FROM
R10 T1 CROSS JOIN R10 T2 CROSS JOIN R10 T3 CROSS JOIN R10 T4 CROSS JOIN R10 T5 CROSS JOIN R10 T6
/*
SELECT *
FROM dbo.calendar_dates
ORDER BY date_value;
*/
;
Subscribe to:
Posts (Atom)