فهرست سرفصل‌های SQL
خانه (HOME) مقدمه (Intro) نحو (Syntax) انتخاب (Select) انتخاب یکتا (Select Distinct) شرط WHERE (Where) مرتب سازی (Order By) و منطقی (And) یا منطقی (Or) نفی (Not) درج (Insert Into) مقادیر Null (Null Values) به روزرسانی (Update) حذف (Delete) انتخاب برتر (Select Top) توابع تجمعی (Aggregate Functions) کمینه و بیشینه (Min and Max) شمارش (Count) جمع (Sum) میانگین (Avg) الگویابی (Like) کاراکترهای عام (Wildcards) عضویت (In) بین (Between) نام مستعار (Aliases) جوین ها (Joins) اینر جوین (Inner Join) لفت جوین (Left Join) رایت جوین (Right Join) فول جوین (Full Join) سلف جوین (Self Join) یونیون (Union) یونیون آل (Union All) گروه بندی (Group By) Having (Having) وجود (Exists) Any, All (Any, All) انتخاب به جدول جدید (Select Into) درج از انتخاب (Insert Into Select) Case (Case) توابع Null (Null Functions) رویه های ذخیره شده (Stored Procedures) کامنت ها (Comments) عملگرها (Operators) ساخت پایگاه داده (Create DB) حذف پایگاه داده (Drop DB) پشتیبان گیری (Backup DB) ساخت جدول (Create Table) حذف جدول (Drop Table) تغییر جدول (Alter Table) قیود (Constraints) غیرتهی (Not Null) یکتا (Unique) کلید اصلی (Primary Key) کلید خارجی (Foreign Key) Check (Check) پیش فرض (Default) ایندکس (Index) افزایش خودکار (Auto Increment) تاریخ ها (Dates) نماها (Views) تزریق SQL (SQL Injection) میزبانی (Hosting) انواع داده (Data Types) کلیدواژه ها (SQL Keywords) ADD (ADD) ADD CONSTRAINT (ADD CONSTRAINT) ALL (ALL) ALTER (ALTER) ALTER COLUMN (ALTER COLUMN) ALTER TABLE (ALTER TABLE) AND (AND) ANY (ANY) AS (AS) ASC (ASC) BACKUP DATABASE (BACKUP DATABASE) BETWEEN (BETWEEN) CASE (CASE) CHECK (CHECK) COLUMN (COLUMN) CONSTRAINT (CONSTRAINT) CREATE (CREATE) CREATE DATABASE (CREATE DATABASE) CREATE INDEX (CREATE INDEX) CREATE OR REPLACE VIEW (CREATE OR REPLACE VIEW) CREATE TABLE (CREATE TABLE) CREATE PROCEDURE (CREATE PROCEDURE) CREATE UNIQUE INDEX (CREATE UNIQUE INDEX) CREATE VIEW (CREATE VIEW) DATABASE (DATABASE) DEFAULT (DEFAULT) DELETE (DELETE) DESC (DESC) DISTINCT (DISTINCT) DROP (DROP) DROP COLUMN (DROP COLUMN) DROP CONSTRAINT (DROP CONSTRAINT) DROP DATABASE (DROP DATABASE) DROP DEFAULT (DROP DEFAULT) DROP INDEX (DROP INDEX) DROP TABLE (DROP TABLE) DROP VIEW (DROP VIEW) EXEC (EXEC) EXISTS (EXISTS) FOREIGN KEY (FOREIGN KEY) FROM (FROM) FULL OUTER JOIN (FULL OUTER JOIN) GROUP BY (GROUP BY) HAVING (HAVING) IN (IN) INDEX (INDEX) INNER JOIN (INNER JOIN) INSERT INTO (INSERT INTO) INSERT INTO SELECT (INSERT INTO SELECT) IS NULL (IS NULL) IS NOT NULL (IS NOT NULL) JOIN (JOIN) LEFT JOIN (LEFT JOIN) LIKE (LIKE) LIMIT (LIMIT) NOT (NOT) NOT NULL (NOT NULL) OR (OR) ORDER BY (ORDER BY) OUTER JOIN (OUTER JOIN) PRIMARY KEY (PRIMARY KEY) PROCEDURE (PROCEDURE) RIGHT JOIN (RIGHT JOIN) ROWNUM (ROWNUM) SELECT (SELECT) SELECT DISTINCT (SELECT DISTINCT) SELECT INTO (SELECT INTO) SELECT TOP (SELECT TOP) SET (SET) TABLE (TABLE) TOP (TOP) TRUNCATE TABLE (TRUNCATE TABLE) UNION (UNION) UNION ALL (UNION ALL) UNIQUE (UNIQUE) UPDATE (UPDATE) VALUES (VALUES) VIEW (VIEW) WHERE (WHERE) توابع MySQL (MySQL Functions) ASCII (ASCII) CHAR_LENGTH (CHAR_LENGTH) CHARACTER_LENGTH (CHARACTER_LENGTH) CONCAT (CONCAT) CONCAT_WS (CONCAT_WS) FIELD (FIELD) FIND_IN_SET (FIND_IN_SET) FORMAT (FORMAT) INSERT (INSERT) INSTR (INSTR) LCASE (LCASE) LEFT (LEFT) LENGTH (LENGTH) LOCATE (LOCATE) LOWER (LOWER) LPAD (LPAD) LTRIM (LTRIM) MID (MID) POSITION (POSITION) REPEAT (REPEAT) REPLACE (REPLACE) REVERSE (REVERSE) RIGHT (RIGHT) RPAD (RPAD) RTRIM (RTRIM) SPACE (SPACE) STRCMP (STRCMP) SUBSTR (SUBSTR) SUBSTRING (SUBSTRING) SUBSTRING_INDEX (SUBSTRING_INDEX) TRIM (TRIM) UCASE (UCASE) UPPER (UPPER) ABS (ABS) ACOS (ACOS) ASIN (ASIN) ATAN (ATAN) ATAN2 (ATAN2) AVG (AVG) CEIL (CEIL) CEILING (CEILING) COS (COS) COT (COT) COUNT (COUNT) DEGREES (DEGREES) DIV (DIV) EXP (EXP) FLOOR (FLOOR) GREATEST (GREATEST) LEAST (LEAST) LN (LN) LOG (LOG) LOG10 (LOG10) LOG2 (LOG2) MAX (MAX) MIN (MIN) MOD (MOD) PI (PI) POW (POW) POWER (POWER) RADIANS (RADIANS) RAND (RAND) ROUND (ROUND) SIGN (SIGN) SIN (SIN) SQRT (SQRT) SUM (SUM) TAN (TAN) TRUNCATE (TRUNCATE) ADDDATE (ADDDATE) ADDTIME (ADDTIME) CURDATE (CURDATE) CURRENT_DATE (CURRENT_DATE) CURRENT_TIME (CURRENT_TIME) CURRENT_TIMESTAMP (CURRENT_TIMESTAMP) CURTIME (CURTIME) DATE (DATE) DATEDIFF (DATEDIFF) DATE_ADD (DATE_ADD) DATE_FORMAT (DATE_FORMAT) DATE_SUB (DATE_SUB) DAY (DAY) DAYNAME (DAYNAME) DAYOFMONTH (DAYOFMONTH) DAYOFWEEK (DAYOFWEEK) DAYOFYEAR (DAYOFYEAR) EXTRACT (EXTRACT) FROM_DAYS (FROM_DAYS) HOUR (HOUR) LAST_DAY (LAST_DAY) LOCALTIME (LOCALTIME) LOCALTIMESTAMP (LOCALTIMESTAMP) MAKEDATE (MAKEDATE) MAKETIME (MAKETIME) MICROSECOND (MICROSECOND) MINUTE (MINUTE) MONTH (MONTH) MONTHNAME (MONTHNAME) NOW (NOW) PERIOD_ADD (PERIOD_ADD) PERIOD_DIFF (PERIOD_DIFF) QUARTER (QUARTER) SECOND (SECOND) SEC_TO_TIME (SEC_TO_TIME) STR_TO_DATE (STR_TO_DATE) SUBDATE (SUBDATE) SUBTIME (SUBTIME) SYSDATE (SYSDATE) TIME (TIME) TIME_FORMAT (TIME_FORMAT) TIME_TO_SEC (TIME_TO_SEC) TIMEDIFF (TIMEDIFF) TIMESTAMP (TIMESTAMP) TO_DAYS (TO_DAYS) WEEK (WEEK) WEEKDAY (WEEKDAY) WEEKOFYEAR (WEEKOFYEAR) YEAR (YEAR) YEARWEEK (YEARWEEK) BIN (BIN) BINARY (BINARY) CASE (CASE) CAST (CAST) COALESCE (COALESCE) CONNECTION_ID (CONNECTION_ID) CONV (CONV) CONVERT (CONVERT) CURRENT_USER (CURRENT_USER) DATABASE (DATABASE) IF (IF) IFNULL (IFNULL) ISNULL (ISNULL) LAST_INSERT_ID (LAST_INSERT_ID) NULLIF (NULLIF) SESSION_USER (SESSION_USER) SYSTEM_USER (SYSTEM_USER) USER (USER) VERSION (VERSION) توابع SQL Server (SQL Server Functions) ASCII (ASCII) CHAR (CHAR) CHARINDEX (CHARINDEX) CONCAT (CONCAT) اتصال با + (Concat with +) CONCAT_WS (CONCAT_WS) DATALENGTH (DATALENGTH) DIFFERENCE (DIFFERENCE) FORMAT (FORMAT) LEFT (LEFT) LEN (LEN) LOWER (LOWER) LTRIM (LTRIM) NCHAR (NCHAR) PATINDEX (PATINDEX) QUOTENAME (QUOTENAME) REPLACE (REPLACE) REPLICATE (REPLICATE) REVERSE (REVERSE) RIGHT (RIGHT) RTRIM (RTRIM) SOUNDEX (SOUNDEX) SPACE (SPACE) STR (STR) STUFF (STUFF) SUBSTRING (SUBSTRING) TRANSLATE (TRANSLATE) TRIM (TRIM) UNICODE (UNICODE) UPPER (UPPER) ABS (ABS) ACOS (ACOS) ASIN (ASIN) ATAN (ATAN) ATN2 (ATN2) AVG (AVG) CEILING (CEILING) COUNT (COUNT) COS (COS) COT (COT) DEGREES (DEGREES) EXP (EXP) FLOOR (FLOOR) LOG (LOG) LOG10 (LOG10) MAX (MAX) MIN (MIN) PI (PI) POWER (POWER) RADIANS (RADIANS) RAND (RAND) ROUND (ROUND) SIGN (SIGN) SIN (SIN) SQRT (SQRT) SQUARE (SQUARE) SUM (SUM) TAN (TAN) CURRENT_TIMESTAMP (CURRENT_TIMESTAMP) DATEADD (DATEADD) DATEDIFF (DATEDIFF) DATEFROMPARTS (DATEFROMPARTS) DATENAME (DATENAME) DATEPART (DATEPART) DAY (DAY) GETDATE (GETDATE) GETUTCDATE (GETUTCDATE) ISDATE (ISDATE) MONTH (MONTH) SYSDATETIME (SYSDATETIME) YEAR (YEAR) CAST (CAST) COALESCE (COALESCE) CONVERT (CONVERT) CURRENT_USER (CURRENT_USER) IIF (IIF) ISNULL (ISNULL) ISNUMERIC (ISNUMERIC) NULLIF (NULLIF) SESSION_USER (SESSION_USER) SESSIONPROPERTY (SESSIONPROPERTY) SYSTEM_USER (SYSTEM_USER) USER_NAME (USER_NAME) توابع MS Access (MS Access Functions) Asc (Asc) Chr (Chr) اتصال با & (Concat with &) CurDir (CurDir) Format (Format) InStr (InStr) InstrRev (InstrRev) LCase (LCase) Left (Left) Len (Len) LTrim (LTrim) Mid (Mid) Replace (Replace) Right (Right) RTrim (RTrim) Space (Space) Split (Split) Str (Str) StrComp (StrComp) StrConv (StrConv) StrReverse (StrReverse) Trim (Trim) UCase (UCase) Abs (Abs) Atn (Atn) Avg (Avg) Cos (Cos) Count (Count) Exp (Exp) Fix (Fix) Format (Number) Int (Int) Max (Max) Min (Min) Randomize (Randomize) Rnd (Rnd) Round (Round) Sgn (Sgn) Sqr (Sqr) Sum (Sum) Val (Val) Date (Date) DateAdd (DateAdd) DateDiff (DateDiff) DatePart (DatePart) DateSerial (DateSerial) DateValue (DateValue) Day (Day) Format (Date) Hour (Hour) Minute (Minute) Month (Month) MonthName (MonthName) Now (Now) Second (Second) Time (Time) TimeSerial (TimeSerial) TimeValue (TimeValue) Weekday (Weekday) WeekdayName (WeekdayName) Year (Year) کاربر جاری (CurrentUser) Environ (Environ) IsDate (IsDate) IsNull (IsNull) IsNumeric (IsNumeric) راهنمای سریع (SQL Quick Ref) نمونه ها (SQL Examples) ویرایشگر آنلاین (SQL Editor) کوییز (SQL Quiz) تمرین ها (SQL Exercises) سرور (SQL Server) سیلابس (SQL Syllabus) برنامه مطالعه (SQL Study Plan) بوت کمپ (SQL Bootcamp) گواهینامه (SQL Certificate) آموزش شرکتی (SQL Training)
نتیجه‌ای برای جستجو یافت نشد.
SQL

SQL — CASE (CASE)

آخرین بروزرسانی: 1404/08/17

CASE (CASE)

«CASE» خروجی شرطی می سازد. «شرطی (Conditional)» یعنی بر اساس وضعیت های مختلف، متن یا مقدار متفاوت برگردد. این کار مثل «اگه/وگرنه» در درس ریاضی است.

CASE چیست؟

با «CASE» چند شرط پشت سرهم بررسی می شوند. وقتی یک شرط درست شود، مقدار مشخصی برمی گردد. اگر هیچ کدام درست نشد، مقدار بخش «ELSE» برمی گردد.

مثال: ساخت متن بر اساس Quantity

این کوئری بر اساس مقدار Quantity متن مناسب تولید می کند.

SELECT OrderID,
       Quantity,
       CASE
         WHEN Quantity > 30 THEN 'The quantity is greater than 30'
         WHEN Quantity = 30 THEN 'The quantity is 30'
         ELSE 'The quantity is under 30'
       END
FROM OrderDetails;

مشاهده در ادیتور

مثال: ORDER BY با کمک CASE

اینجا ابتدا بر اساس City مرتب می شود؛ اگر City خالی باشد، Country جایگزین می شود.

SELECT CustomerName,
       City,
       Country
FROM Customers
ORDER BY (
  CASE
    WHEN City IS NULL THEN Country
    ELSE City
  END
);

مشاهده در ادیتور

گام های عملی

  1. ستون های خروجی را بنویس.
  2. بلوک CASE را اضافه کن.
  3. شرط های WHEN و مقدار THEN را مشخص کن.
  4. در پایان از ELSE برای حالت پیش فرض استفاده کن.
  5. CASE را با END ببند و کوئری را اجرا کن.

نکته: اولین شرط درست اجرا می شود؛ بقیه نادیده گرفته می شوند.

مطالعه بیشتر: عبارت شرطی CASE، همچنین صفحات BETWEEN و ASC را ببین.

جمع بندی سریع

  • CASE خروجی شرطی می دهد.
  • WHEN شرط را تعریف می کند.
  • ELSE حالت پیش فرض است.
  • با ORDER BY هم کاربردی است.
  • اولین شرط درست اعمال می شود.