ユーザーが選択し、SQLパラメーターとして渡されたソート順とソート方向を持つオブジェクトのリストを返すストアドプロシージャを作成しようとしています。
次の列を持つ製品のテーブルがあるとします:product_id(int)、name(varchar)、value(int)、created_date(datetime)およびパラメーター@sortDirおよび@sortOrder
こんなことしたい
select *
from Product
if (@sortOrder = 'name' and @sortDir = 'asc')
then order by name asc
if (@sortOrder = 'created_date' and @sortDir = 'asc')
then order by created_date asc
if (@sortOrder = 'name' and @sortDir = 'desc')
then order by name desc
if (@sortOrder = 'created_date' and @sortDir = 'desc')
then order by created_date desc
caseステートメントで試してみましたが、データ型が異なるため問題が発生していました。誰か提案がありますか?