потребовалось реализовать аналог Limit из mysql. решил сделать процедурой. в дальнейшем добавлю список возвращаемых полей. пока что надо указать:
1) с какой записи выбираем
2) сколько записей выбираем
3) таблица
4) порядок сортировки в таблице
create PROCEDURE LimitRN ( @Begin varchar(100), @Top varchar(100), @Table varchar(max), @Sort varchar(max))
AS
DECLARE @EndSelect varchar(10), @BeginSelect varchar(10), @SQL nvarchar(max), @SSort varchar(max), @tTable varchar(max)
set @tTable=@Table
set @SSort=@Sort
set @EndSelect=@Begin+@Top
set @BeginSelect=@Begin
if @SSort=''
begin
set @SSort='(select 1)'
end
SET @SQL = 'select * from ( select row_number() over(order by '+@SSort+') as aaa, * from '+@tTable+' t ) q where aaa between '+@BeginSelect+' and '+@EndSelect
exec(@SQL)
go
пятница, 2 июля 2010 г.
Подписаться на:
Комментарии (Atom)
