在oracle sql語句里有沒有if
oracle 中if ..else 可以再pl/sql 中使用,如果是要在SQL語句中達到這種效果可以用case when 。
then 。else ..end;mysql數據庫中CASE WHEN語句。
case when語句,用于計算條件列表并返回多個可能結果表達式之一。CASE 具有兩種格式:簡單 CASE 函數將某個表達式與一組簡單表達式進行比較以確定結果。
CASE 搜索函數計算一組布爾表達式以確定結果。 兩種格式都支持可選的 ELSE 參數。
語法簡單 CASE 函數:復制代碼 代碼如下:CASE input_expressionWHEN when_expression THEN result_expression[ 。n ][ELSE else_result_expressionENDCASE 搜索函數:復制代碼 代碼如下:CASE WHEN Boolean_expression THEN result_expression[ 。
n ][ELSE else_result_expressionEND參數input_expression是使用簡單 CASE 格式時所計算的表達式。Input_expression 是任何有效的 Microsoft? SQL Server? 表達式。
WHEN when_expression使用簡單 CASE 格式時 input_expression 所比較的簡單表達式。When_expression 是任意有效的 SQL Server 表達式。
Input_expression 和每個 when_expression 的數據類型必須相同,或者是隱性轉換。占位符,表明可以使用多個 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。
THEN result_expression當 input_expression = when_expression 取值為 TRUE,或者 Boolean_expression 取值為 TRUE 時返回的表達式。result expression 是任意有效的 SQL Server 表達式。
ELSE else_result_expression當比較運算取值不為 TRUE 時返回的表達式。如果省略此參數并且比較運算取值不為 TRUE,CASE 將返回 NULL 值。
Else_result_expression 是任意有效的 SQL Server 表達式。Else_result_expression 和所有 result_expression 的數據類型必須相同,或者必須是隱性轉換。
WHEN Boolean_expression使用 CASE 搜索格式時所計算的布爾表達式。Boolean_expression 是任意有效的布爾表達式。
結果類型從 result_expressions 和可選 else_result_expression 的類型集合中返回最高的優先規則類型。有關更多信息,請參見數據類型的優先順序。
結果值簡單 CASE 函數:計算 input_expression,然后按指定順序對每個 WHEN 子句的 input_expression = when_expression 進行計算。返回第一個取值為 TRUE 的 (input_expression = when_expression) 的 result_expression。
如果沒有取值為 TRUE 的 input_expression = when_expression,則當指定 ELSE 子句時 SQL Server 將返回 else_result_expression;若沒有指定 ELSE 子句,則返回 NULL 值。 CASE 搜索函數:按指定順序為每個 WHEN 子句的 Boolean_expression 求值。
返回第一個取值為 TRUE 的 Boolean_expression 的 result_expression。如果沒有取值為 TRUE 的 Boolean_expression,則當指定 ELSE 子句時 SQL Server 將返回 else_result_expression;若沒有指定 ELSE 子句,則返回 NULL 值。
下面分享一些mysql case when語句的例子。A. 使用帶有簡單 CASE 函數的 SELECT 語句在 SELECT 語句中,簡單 CASE 函數僅檢查是否相等,而不進行其它比較。
例子,使用 CASE 函數更改圖書分類顯示。復制代碼 代碼如下:USE pubsGOSELECT Category =CASE typeWHEN 'popular_comp' THEN 'Popular Computing'WHEN 'mod_cook' THEN 'Modern Cooking'WHEN 'business' THEN 'Business'WHEN 'psychology' THEN 'Psychology'WHEN 'trad_cook' THEN 'Traditional Cooking'ELSE 'Not yet categorized'END,CAST(title AS varchar(25)) AS 'Shortened Title',price AS PriceFROM titlesWHERE price IS NOT NULLORDER BY type, priceCOMPUTE AVG(price) BY typeGO注釋,后來我試了一下不讓用category=。
我使用的代碼為:復制代碼 代碼如下:SELECTcase genderWHEN 1 THEN 'NAN'WHEN 0 THEN 'NV'end as genderFROMt_swidy_day_nutrient結果集:Category Shortened Title Price ------------------- ------------------------- -------------------------- Business You Can Combat Computer S 2.99 Business Cooking with Computers: S 11.95 Business The Busy Executive's Data 19.99 Business Straight Talk About Compu 19.99 avg==========================13.73 Category Shortened Title Price ------------------- ------------------------- -------------------------- Modern Cooking The Gourmet Microwave 2.99 Modern Cooking Silicon Valley Gastronomi 19.99 avg==========================11.49 Category Shortened Title Price ------------------- ------------------------- -------------------------- Popular Computing Secrets of Silicon Valley 20.00 Popular Computing But Is It User Friendly? 22.95 avg==========================21.48 Category Shortened Title Price ------------------- ------------------------- -------------------------- Psychology Life Without Fear 7.00 Psychology Emotional Security: A New 7.99 Psychology Is Anger the Enemy? 10.95 Psychology Prolonged 。
oracle怎么寫IF語句
如果是 SQL 語句里面使用。
使用 DECODE 或者 CASE WHEN
DECODE 的用法就是
DECODE(abc, 50, 'A', 'B')
CASE WHEN 的用法就是
CASE WHEN abc=50 THEN 'A' ELSE 'B' END
如果是在存儲過程里面的話,就是簡單的 IF/ELSE 了
SQL 語句的話,就是
SELECT
abc, DECODE(abc, 50, 'A', 'B')
FROM
表
ORACLE sql 里面可以用if 語句嗎
insert 語句中值的順序如果和表結構一致可以省略列名列表。
這個SQL的意思沒看懂,我給分析一下看對不對,
你是不是想表達這個意思:
如果在yangao這個表中存在age3=4的數據,那么,就向yangao中插入一行數據,行數據的內容是(4,NULL,1).
如果是這樣的話,那么IF用的是不對的。
在SQL里面條件的關鍵字是WHERE。
insert into yangao values(4,NULL,1)
where exists (select * from yangao where(AGE3=4));
commit;
但如果你想表達的是:
在yangao表中插入一條數據,如果存在(select * from yangao where(AGE3=4)) 這樣的數據就提交的話,那么應該這么寫:
insert into yangao values (4, NULL, 1);
select count(*) into n_count from yangao where (AGE3 = 4);
if n_count > 0 then
commit;
end if;
oracle sql語言中如何寫if的判斷,并循環
咦,剛有回答你一個問題。你這個是只判斷*>*情況下才update。其他情況不考慮。
update table1 t3
set * =
(select number
from (select *, * - * number
from table1 t1, table2 t2
where * = *) t4
where * = *
and * > 0)
where * in (select *
from (select * - * number
from table1 t1, table2 t2
where * = *) t4
where * > 0);
commit;
Oracle連接查詢和sql語句中的條件判斷有哪些
SELECT 1 UPLOAD, 0 SHENGJI, *_ID, *_ID, *_ID, *_NUM, *, *, *_OUT_REGION, *_OPERA_TIME, *_OPERA_ID, *_OPERA_TIME, *E_STATE, *_IN_REGION, case when *_IN_REGION is null then '未選擇' else *_NAME end AS MIGRT_IN_REGION_NAME FROM ADPM_MIGRATE_CPA MASTER, ADPM_MIGRATE_INFO MR left join ADPM_REGION_CODE ARC on *_IN_REGION = *_CODE WHERE *_ID = *_ID AND (*E_STATE = '10' OR *E_STATE = '20' OR *E_STATE = '60'); SELECT 1 UPLOAD, 0 SHENGJI, *_ID, *_ID, *_ID, *_NUM, *, *, *_OUT_REGION, *_OPERA_TIME, *_OPERA_ID, *_OPERA_TIME, *E_STATE, *_IN_REGION, case when *_IN_REGION is null then '未選擇' else *_NAME end AS MIGRT_IN_REGION_NAME FROM ADPM_MIGRATE_CPA MASTER, ADPM_MIGRATE_INFO MR, ADPM_REGION_CODE ARC WHERE *_ID = *_ID AND (*E_STATE = '10' OR *E_STATE = '20' OR *E_STATE = '60') AND *_IN_REGION = *_CODE(+);。
轉載請注明出處華閱文章網 » oracle的sql語句if