1樓:匿名使用者
如果沒有匹配的結果值,則返回結果為else後的結果,如果沒有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
一個case表示式的預設返回值型別是任何返回值的相容集合型別,但具體情況視其所在語境而定。如果用在字串語境中,則返回結果味字串。如果用在數字語境中,則返回結果為十進位制值、實值或整數值。
2樓:匿名使用者
去這個地方看看就明白了:
我已經過了。
mysql的case when語句
3樓:帳號已登出
case when的兩種寫法。
簡單判斷:要判斷值的列寫在case後面,when後面寫值,相等的情況執行then後的語句,可以寫多個when判斷語句,都不滿足返回else後的值,要以end結尾,end後面可以給該列指定列名。
case [col_name]
when [value1] then [result1]when [value1] then [result2]else [default]
end [new_col_name]
表示式判斷:
case開頭,when後面寫表示式,表示式為真則執行then後的語句,可以寫多個when判斷表示式,都不滿足的情況下返回else後的值,以end結尾,end後可以為該列指定列名。
casewhen [expr] then [result1]when [expr] then [result2]else [default]
end [new_col_name]
mysql case when的判斷問題
4樓:莫路草根
select id,(case status
when '1' then '正常賬號'
when '2' then '已凍結'
when '3' then '已登出'
end) as `status` from tablecase then 的正確用法,當status = 1時,查詢出來的資料填充內容:正常賬號;當status=2時,……這樣寫你就不會感覺到迷惑了。
mysql更新語句的case when 和 where的結合
5樓:她是我的小太陽
直接加在語句最後就行了。
update `member` set score = case when score is not null then score = 0 else score = 1 end) where id =1;
mysql資料庫中case when語句。
case when語句,用於計算條件列表並返回多個可能結果表示式之一。
case 具有兩種格式:
簡單 case 函式將某個表示式與一組簡單表示式進行比較以確定結果。
case 搜尋函式計算一組布林表示式以確定結果。
兩種格式都支援可選的 else 引數。
6樓:匿名使用者
update `member` set score = case when score is not null then score = 0 else score = 1 end) where id =1;
直接加在語句最後就行了。
用mysql寫一個 case when的自定義函式要怎麼寫
7樓:匿名使用者
mysql> create function helloworld4()
-> returns varchar(20)->begin
-> return 'hello world!';
-> end;
query ok, 0 rows affected ( sec)
mysql> select helloworld4()
| helloworld4()
| hello world! |
1 row in set ( sec)如果你會其它資料庫的話, 那麼看看那個 sql 儲存過程編寫 參考手冊 對你會有些幫助。
mysql的case when 問題
mysql case when 碰上中文字串
8樓:匿名使用者
恩。。。感覺不大對呢。
小名,2014,null,[email protected],123-456-789
是在一個欄位裡吧,按照你下面的寫法,好像是放到了很多的欄位裡,你確定這個是你要的?
你用group_concat函式試試,應該能達到你上面的需求。(就是沒有null)
至於你上面的問題,你的語句去掉group查出來的結果應該是。
1000 小名 null null null null null
1000 null 2014 null null null null
你在group聚合的時候,沒有指令上面的欄位和下面的欄位用什麼方式結合,就是說「小名+null」用什麼方式結合,也就是說在case when的外層少了一個聚合函式,不過按照這個寫法,這個聚合函式是什麼我還真不清楚,因為不管怎麼聚和每個欄位都會出現一堆的null,跟你的要求不符。
比較簡單的解決辦法,個人建議補齊1-6,沒有就寫null,這樣查詢的話用group_concat就行。
如果不加,個人感覺就比較麻煩了。
先用null合併,就是不加單引號的null,聚合後在顯示的時候用上ifnull
mysql的case when語句轉oracle
9樓:匿名使用者
oracle也有case when的語法,照辦就行,不過用在where條件中,需要有返回值的比較。
where = asdf' and (
casewhen ( like '%0%')then true
when ( like '%1%')and = #code# then true
when ( like '%2%')and ( #dept# and #flag# = 1) then true
else false
end) =true
這是按照我的業務理解寫的。
where = asdf' and (
casewhen ( like '%0%')then 1
when ( like '%1%')and = #code# then 2
when ( like '%2%')and ( #dept# and #flag# = 1) then 3
else 4
end) =1 --根據反回結果來過濾資料)
10樓:匿名使用者
- -不知道你說啥 = #dept# and #flag# = 1 能對麼。。。
mysql中的root賬戶不小心刪除了,怎麼恢復root使用者
關掉mysql服務,找到另外一臺機器上沒有刪除root的data資料夾,data下面mysql資料夾user.frm,user.myd,user.myi三個檔案,覆蓋到同樣data資料夾就好了 重新啟動 root正常登入 求助!mysql 5.1誤刪除root使用者 靠,重新建立一個有管理許可權的使...
mysql索引用的什麼樹,mysql索引的資料結構,為什麼用b 樹
先從資料結構的角度來答。題主應該知道b 樹和b 樹最重要的一個區別就是b 樹只有葉節點存放資料,其餘節點用來索引,而b 樹是每個索引節點都會有data域。這就決定了b 樹更適合用來儲存外部資料,也就是所謂的磁碟資料。mysql索引的資料結構,為什麼用b 樹 先從資料結構的角度來答。題主應該知道b 樹...
mysql有不用安裝就能用的嗎,mysql空間不需要安裝mysql嗎
access轉成sql 理論上可行,但是筆者修改的程式只能成功幾個 網上大部分的免費asp程式使用的是access資料庫。但是access資料庫作為一箇中小型的單機資料庫系統,在承擔訪問量 資料量大的 應用時,往往就不堪重負了。一般認為,超過50m的access資料庫效能就開始明顯下降,超過100m...