2013-08-24 3 views
0

Ex:оператор выбора возвращает часть результата

@productName varchar(50), 
    @pageStart int, 
    @pageEnd int, 
    @result varchar(MAX) 

    set @result = select * from products where productName like '%@productName%' 

    return select from @result where section between @pageStrat to @pageEnd 

Это как я себе это, если это правильно? или есть один оператор может сделать результат

+2

Почему бы вам не попробовать и не посмотреть? –

+0

Я не эксперт в SP, я пытался, но он дал мне ошибки. – DevC

+0

Но с чего начинать ошибки? Поэтому мы не догадываемся и имеем какую-то реальную информацию. Кроме того, и, что самое главное, речь идет только о синтаксисе или о конкретном запросе? MySql или SQL Server? Оба они несколько отличаются – Alejandro

ответ

1
declare @productName varchar(50), 
    @pageStart int, 
    @pageEnd int, 
    @result varchar(MAX) 

select * from (select *,ROW_NUMBER() over (order by ID) as row from products where 
productName like @productName) a where a.row between @pageStart and @pageEnd 
1

Replace

'%@productName%' 

с

'%' + @productName + '%' 

Вы ищете строки, которые содержат буквальную «@productName», и я не Думайте, это то, что вы хотели. Также:

between @pageStrat to @pageEnd 

должен быть

between @pageStart and @pageEnd 

Примечание опечатка @pageStart и "в" вместо "и" в вашей версии.

Смежные вопросы