⑴ oracle資料庫case問題
case when...then...else...end是sql查詢的過濾條件,在做統計的時候常常使用。
表order(id, status)
select count(*) 訂單數,sum(case when a.status='1' then 1 else 0 end) 待付款,sum(case when a.status='2' then 1 else 0 end) 待發貨,sum(case when a.status='3' then 1 else 0 end) 待收貨,sum(case when a.status='4' then 1 else 0 end) 已完成,sum(case when a.status='5' then 1 else 0 end) 已取消 fromorder
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的 適應高吞吐量的資料庫解決方案。
⑵ c# ACCESS資料庫case語句查詢問題
Access
中改為:
Dim
strSQL
As
String
strSQL
="Select
iif(content
LIKE
'*-RA*'
,
'小雨'
,iif(content
LIKE
'*RA*',
'大雨'
,'其他'))
AS
天氣
FROM
Sheet1"
⑶ 為什麼mysql中的case總是為空
ifnull()
你的第二個參數設置有誤.
你可以這樣試試:
MySQL ifnull()函數和nvl()函數類似,但是也有所不同,下面就為您詳細介紹MySQLifnull()函數 ,希望可以讓您對MySQL ifnull()函數有更深的認識.
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2.IFNULL()返回一個數字或字元串值,取決於它被使用的上下文環境.
mysql> select IFNULL(1,0);
-> 1
mysql> select IFNULL(0,10);
-> 0
mysql> select IFNULL(1/0,10);
-> 10
mysql> select IFNULL(1/0,'yes');
-> 'yes'
IF(expr1,expr2,expr3)
如果expr1是TRUE(expr1<>0且expr1<>NULL),那麼IF()返回expr2,否則它返回expr3.IF()返回一個數字或字元串值,取決於它被使用的上下文.
mysql> select IF(1>2,2,3);
-> 3
mysql> select IF(1<2,'yes','no');
-> 'yes'
mysql> select IF(strcmp('test','test1'),'yes','no');
-> 'no'
expr1作為整數值被計算,它意味著如果你正在測試浮點或字元串值,你應該使用一個比較操作來做.
mysql> select IF(0.1,1,0);
-> 0
mysql> select IF(0.1<>0,1,0);
-> 1
在上面的第一種情況中,IF(0.1)返回0,因為0.1被變換到整數值, 導致測試IF(0).這可能不是你期望的.在第二種情況中,比較測試原來的浮點值看它是否是非零,比較的結果被用作一個整數.
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
第一個版本返回result,其中value=compare-value.第二個版本中如果第一個條件為真,返回result.如果沒有匹配的result值,那麼結果在ELSE後的result被返回.如果沒有ELSE部分,那麼NULL被返回.
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
-> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
-> "true"
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL
⑷ 資料庫sql中的case語句~
SQL語句中的CASE語句與高級語言中的switch語句,是標准SQL的語法,適用與一個條件判斷有多種值的情況下分別執行不同的操作
靈活應用CASE語句可以使SQL語句變得簡潔易讀.
Case 使用方法:
Case具有兩種格式。簡單Case函數
和Case搜索函數。 --簡單Case
函數
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函數
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
這兩種方式,可以實現相同的功能。簡單Case函數的寫法相對比較簡潔,但是和Case搜索函數相比,功能方面會有些限制,比如寫判斷式。
還有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
--比如說,下面這段SQL,你永遠無法得到「第二類」這個結果
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一類'
WHEN col_1 IN ('a') THEN '第二類'
ELSE'其他' END
⑸ 資料庫中case語句和if語句的區別
SELECT
'Price
Category'
=
CASE
WHEN
price
IS
NULL
THEN
'Not
yet
priced'
WHEN
price
<
10
THEN
'Very
Reasonable
Title'
WHEN
price
>=
10
and
price
<
20
THEN
'Coffee
Table
Title'
ELSE
'Expensive
book!'
END
先說下,case要和end一塊用。
從上面可以看出,case里用的是when
then
形式,從整個case
end來看,它是從自己的多個語句中擇一輸出結果。
如果是把when
看成if
,就好理解多了,if語句就像是篩子里的石子,而case
end就是篩子,只會允許一個符合它網眼大小的石頭出去,並且會將這個石子打包成一個可用的表達式。
⑹ 資料庫的case是什麼意思..概念是什麼.
用例,就是相當於一個例子
⑺ SQL中case,when,then,else的用法是什麼
用法:
1、第一種寫法:
復制代碼
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE
WHEN s.s_sex = '1' THEN '男'
WHEN s.s_sex = '2' THEN '女'
ELSE '其他'
END as sex,
s.s_age,
s.class_id
FROM
t_b_student s
WHERE
1 = 1
2、第二種寫法
SELECT
s.s_id,
s.s_name,
s.s_sex,
CASE s.s_sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他'
END as sex,
s.s_age,
s.class_id
FROM
t_b_student s
WHERE
1 = 1
兩個運行結果一樣:
有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
Case具有兩種格式:簡單Case函數和Case搜索函數。
簡單Case函數:
CASE sex
WHEN『1』THEN『男』
WHEN『0』THEN『女』
ELSE『其他』END
Case搜索函數:
CASE WHEN sex=『1』THEN『男』
WHEN sex=『0』THEN『女』
ELSE『其他』END
顯然,簡單Case函數生在簡潔,但是它只適用於這種單欄位的單值比較,而Case搜索函數的優點在於適用於所有比較的情況。
還有一個需要注意的問題,Case函數在滿足了某個符合條件後,剩下的條件將會被自動忽略,因此,即使滿足多個條件,執行過程中也只認第一個條件。
在使用CASE WHEN時,可以把它當作一個沒有欄位名的欄位,欄位值根據條件確認,在需要使用欄位名時可以是用as來定義別名。
⑻ 資料庫case語句
select 成績, case 成績 when 成績<60 then 成績+10 else 成績 end as 加分後成績
from 表名
⑼ sql 資料庫 case 用法~~~
select name,N=(
case when balance=null then '不清'
when balance<1000 then '較少'
when balance>=100 then '其他'
end)
from account