PDA

View Full Version : دستور شرطی مانند if



seniamail
یک شنبه 17 اردیبهشت 1391, 11:16 صبح
سلام
میخواستم یه کوئری بنویسم به این شکل که یکی از فیلد های کوئری باتوجه به مقدار یکی از فیلد های جدول تغییر کنه
مثلا اگر فیلدی مقدارش 1 بود در کوئری اون رو با 10 جمع کنه و اگر مقدارش 2 بود اون رو مثلا با 17 جمع کنه و ...

مثلا در بعضی نرم افزار های گزارشگیری فرمولی به شکل زیر میشه به فیلدمون بدیم که با توجه به شرط(condition) مقدار رو برگردونه
آیا همچین فرمولی داریم که بعد از دستور select بشه استفاده کرد

Switch (condition1, value1, condition2, value2, ...)

SReza1
یک شنبه 17 اردیبهشت 1391, 12:48 عصر
فكر كنم با يك CASE ميتوني مشكلتو حل كني . منظورت همينه؟



Simple CASE function:

CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END

Searched CASE function:

CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END

seniamail
سه شنبه 19 اردیبهشت 1391, 08:39 صبح
میشه لطفا یک مثال با select هم اینجا قرار بدین

Galawij
سه شنبه 19 اردیبهشت 1391, 09:25 صبح
سلام،
این هم چند نمونه مثال:
SELECT ProductNumber, Name, "Price Range" =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Production.Product
ORDER BY ProductNumber ;

WITH Data (value) AS
(
SELECT 0
UNION ALL
SELECT 1
)
SELECT
CASE
WHEN MIN(value) <= 0 THEN 0
WHEN MAX(1/value) >= 100 THEN 1
END
FROM Data ;