0

私は1つのSQLクエリをしようとしています

alter procedure [dbo].[sp_E_GetProducts]
@skip as INT = 0,
@take as INT = 999999,
@search as NVARCHAR(50) = '',
@urtkod as NVARCHAR(50) = ''
as
begin
; with MyTable as ( 
select sto_kod, sto_isim, sto_sat_cari_kod, ROW_NUMBER() OVER (ORDER BY sto_kod) as row from MikroDB_V14_AKCAY2010.dbo.STOKLAR where
(sto_isim like '%' + @search + '%' or sto_kod like '%' + @search + '%') and sto_sat_cari_kod <> '' and  @urtkod like '%' + sto_sat_cari_kod + '%'

)

select * from MyTable where row between @skip and @take
end

null ではないパラメーターを入力すると機能しますが、@urtkod が null の場合はすべてのテーブルを取得します (「and st_sat_cari_kod <> '' と @urtkod like '%' + sto_sat_cari_kod + '%'」 は無視されます)、私は調査します」 case when" でもうまくいかなかった、またはやり方が間違っていた。

4

2 に答える 2