case
語句一般有兩種用法
第一種用法
case expression
when value1 then returnvalue1
when value2 then returnvalue2
when value3 then returnvalue3
else defaultvalue
end
case ***
when
'1'then
'男'when
'2'then
'女'else
'其他'
end
第二種用法
case
when condition1 then returnvalue1
when condition2 then returnvalue2
when condition3 then returnvalue3
else defaultvalue
end
case
when *** = '1'
then
'男'when *** = '2'
then
'女'else
'其他'
end
例項
我們用case
方法來判斷工資的等級,並統計每一等級的人數。sql**如下;
select
case
when salary <= 500
then
'1'when salary > 500
and salary <= 600
then
'2'when salary > 600
and salary <= 800
then
'3'when salary > 800
and salary <= 1000
then
'4'else
null
end salary_class,
count(*)
from table_a
group
bycase
when salary <= 500
then
'1'when salary > 500
and salary <= 600
then
'2'when salary > 600
and salary <= 800
then
'3'when salary > 800
and salary <= 1000
then
'4'else
null
end;
公司a,這個公司有個規定,女職員的工資必須高於1000塊。如果用check和case來表現的話,如下所示
constraint check_salary check
( case
when *** = '2'
then
case
when salary > 1000
then
1else
0end
else
1end = 1 )
grant
賦予乙個使用者,乙個組或所有使用者對資料庫的操作許可權
grant
《許可權》 on 表名[(列名)] to 使用者 with
grant
option
或 grant
《許可權》 on
《資料物件》 from
《資料庫使用者》
deny
在安全系統中建立一項,以拒絕給當前資料庫內的安全帳戶授予許可權並防止安全帳戶通過其組或角色成員資格繼承許可權
deny 《許可權》 on 《資料物件》 to 《資料庫使用者》
revoke
收回以前在當前資料庫內的使用者上授予或拒絕的許可權
revoke 《許可權》 on 《資料物件》 from 《資料庫使用者》
deny和revoke的區別:廢除類似於拒絕,但是,廢除許可權是刪除已授予的許可權,並不妨礙使用者、組或角色從更高階別繼承已授予的許可權。因此,如果廢除使用者檢視表的許可權,不一定能防止使用者檢視該錶,因為已將檢視該錶的許可權授予了使用者所屬的角色
參考資料:
Shell學習筆記 流程控制
分支兩種 if 和 case 迴圈三種 for until while.1.if if then elif then else fi 沒啥說的和c的差不多.就是別忘了 then.2.case case var in a b c esac 和switch的意思差不多,這個多了 表示或的關係,感覺更靈活...
Lua 流程控制(學習筆記)
lua 程式語言流程控制語句通過程式設定乙個或多個條件語句來設定。在條件為 true 時執行指定程式 在條件為 false 時執行其他指定 要注意的是lua中 0 為 true 0 為 true if 0 then print 0 為 true end以上 輸出結果為 0 為 trueif 布林表示...
C 學習筆記 流程控制
程式流程就是c 的執行順序。兩種方法分別是分支和迴圈。這兩種方法都用到了布林邏輯。布林比較運算子 a b c a b c a ba b c a b c a b c 其中a是布林型別。處理布林值的布林運算 a b a b c a b c a b c 邏輯非邏輯與 邏輯或邏輯異或 其中a,b,c都是布林...