PDA

View Full Version : سوال: دستور case در sql2000



طبیب دل
شنبه 18 اردیبهشت 1389, 02:35 صبح
با سلام
من وقتی از دستور زیر در sql2000 استفاده میکنم



CASE dbo.users.statusHesab when 1 then 'active' when 0 then 'noActive' end as a1

پیغام زیر رو میده



the query designer does not support the case sql construct

ولی وقتی تو sql2005 استفاده میکنم مشکلی نداره چی کار کنم؟ چون باید با sql2000 کار کنم

محمد سلیم آبادی
شنبه 18 اردیبهشت 1389, 15:46 عصر
سلام،
گرچه این مساله برام کمی مشکوک و عجیب هست ولی می تونید از این روش جایگزین استفاده کنید:


--1 active
--0 noActive
declare @i int =0000000000001

SELECT COALESCE(NULLIF((COALESCE(NULLIF(CAST(@i AS CHAR(1)),'1'),'Active')), '0'), 'noActive') AS a1

ASKaffash
یک شنبه 19 اردیبهشت 1389, 10:06 صبح
با سلام
من وقتی از دستور زیر در sql2000 استفاده میکنم



CASE dbo.users.statusHesab when 1 then 'active' when 0 then 'noActive' end as a1

پیغام زیر رو میده



the query designer does not support the case sql construct

ولی وقتی تو sql2005 استفاده میکنم مشکلی نداره چی کار کنم؟ چون باید با sql2000 کار کنم
سلام
در 2000 تست کردم هیچ مشکلی نیست این مثال:


Select *,
A=(Case FID When 1 Then 'S1' When 2 Then 'S2' End)
From T1

لطفا بخش بیشتری از دستور را قرار دهید شاید ایراد چیز دیگری است

محمد سلیم آبادی
یک شنبه 19 اردیبهشت 1389, 14:12 عصر
لطفا بخش بیشتری از دستور را قرار دهید شاید ایراد چیز دیگری است
سلام،
خیلی کم پیدا شدین. دوست دارم بیشتر در این بخش فعالیت کنید تا بلکه از فعالیت مفید شما عزیزان هم استفاده کنیم.

بله، من هم در 2000 امتحان کردم، مساله وجود نداره. به احتمال خیلی زیاد ایراد از مابقی کدهایشان هست که نمایش ندادن.

البته روشی هم که پیشنهاد دادم دقیقا همون جواب را می ده. از ترکیب دو تابع NULLIF , COALESCE اینکار را انجام دادم.