PDA

View Full Version : ارسال ستون به OrderBy و صعودی نزولی



اوبالیت به بو
چهارشنبه 27 دی 1391, 13:38 عصر
درود بر شما

من می خواهم در SP خودم بر اساس مقدار دو پارامتر (یکی نام ستون و دیگری صعودی یا نزولی بودن) تصمیم به Select گرفتن بگیرم.

در این (http://barnamenevis.org/showthread.php?376323-%D9%85%D8%B1%D8%AA%D8%A8-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AF%D9%84%D8%AE%D9%88%D8%A7%D9%87-%D8%A8%D8%B1-%D8%A7%D8%B3%D8%A7%D8%B3-order-by&highlight=%D9%85%D8%B1%D8%AA%D8%A8)تایپیک قسمت CASE رو متوجه نشدم.

آیا باید پارامتر تعریف کنم و بر اساس مقدار پارمتر تصمیم بگیرم؟ خودم می خوام این کار رو بکنم یعنی:



@OrderBy varchar(50),
@Align varchar(50)


حالا در بخش OrderBy بگم اگر @OrderBy='Column' بر اساس همون + اینکه @Align هر چی بود بر اساس اون چیدمان رو انجام بده.

fakhravari
چهارشنبه 27 دی 1391, 20:57 عصر
اگر به این کار کنید با این باید خروجی بگیرید.

Declare @TableName nvarchar(20) ='B_Topics'
Declare @ASC nvarchar(20) ='ASC'
Declare @SQL Nvarchar(max);


set @SQL ='select * from '+@TableName +' order by TopicID '+@ASC

exec sp_executesql @SQL
--print @SQL

محمد سلیم آبادی
شنبه 30 دی 1391, 07:44 صبح
حالا در بخش OrderBy بگم اگر @OrderBy='Column' بر اساس همون + اینکه @Align هر چی بود بر اساس اون چیدمان رو انجام بده.
این مساله با اون مساله ای که بهش لینک دادین متفاوت هست. همانطور که در پست قبلی اشاره شد شما باید query تون رو داینامیک بسازین.
پست قبلی مشکلتون رو حل میکنه، فقط بجای اینکه نام ستون (که مرتب سازی بر اساس اون اتفاق می افته) متغیر باشه نام جدول متغیر هست