ورود

View Full Version : شبیه دستور DECODE در اوراکل



delphiman00
جمعه 08 خرداد 1383, 09:18 صبح
سلام
در اوراکل دستوری به نام DECODE وجود دارد که کاربرد بسیار خوبی دارد و چنین قالبی دارد :

DECODE(value,if1,then1,if2,then2,if3,then3,...,els e)
در دستور select به کار می رود و در انتخاب یک فیلد می توان شروط مختلفی را بررسی کرد
مثلا :
select name ,
decode((no/2), 1,Amount,Null) as first
decode((no/2), 2,Amount,Null) as second
from table1
در این مثال فیلد name, و فیلد amount انتخاب می شود فقط در انتخاب فیلد amount ابتدا فیلد no را تقسیم بر 2 می کند و و می گوید اگر جواب مثلا 1 شد فیلد amount را انتخاب کن و تحت فیلدی به نام first قرار بده
در اصل جدول جدید ما سه تا فیلد name,first,second دارد که مقادیر first , second از روی فیلد شئخعدف بدست آمده


حال سوال :

در دلفی و دستورات sql چنین چیزی داریم؟

باتشکر

hmm
شنبه 09 خرداد 1383, 07:29 صبح
در اکسس فکر کنم iif است ولی مطمئن نیستم
اگرهم درست باشه iif فقط دو مقدار رو میتونی معرفی کنی ولی در decode بی نهایت میتونی مقدار تعیین کنی
سوال خوبیه من هم با iif مشکل دارم

hr110
شنبه 09 خرداد 1383, 08:26 صبح
در دلفی دستوری به شکلی ifthen وجود دارد، البته این دستور برای انتخاب دو مقدار با استفاده از یک شرط میباشد :
:rgreen:

delphiman00
چهارشنبه 13 خرداد 1383, 11:11 صبح
متاسفانه جواب های شما عزیزان کمک زیادی نکرد می خواهم ببینم آیا واقعا راهی وجود دارد یا نه ؟

چه راهی ؟!

راهی که بتوان از یک جدول اطلاعات درون یک فیلد را با چند شرط متفاوت درون چند فیلد متفاوت در یک query ریخت دقیقا مثل دستور Decode در اوراکل .

البته من به دنبال راهی در دستورات sql هستم

با تشکر از همه شما

phantasm
چهارشنبه 13 خرداد 1383, 11:48 صبح
توی SQL استاندارد همچین تابعی وجود نداره.

اما چرا از خود اوراکل استفاده نمیکنی؟؟وقتی پایگاهت تحت اوراکل باشه database engine اوراکل decode رو میفهمه.

delphiman00
پنج شنبه 14 خرداد 1383, 11:28 صبح
پایگاه داده من اوراکل نیست متاسفانه