當前位置:首頁 » 編程語言 » sqlthenelseend
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlthenelseend

發布時間: 2022-05-06 22:15:56

sql case when then else end 和 ibatis問題

看看編碼是否是一致的,可能內部用的Unicode,外面用的UTF8或者其他的什麼就可能導致這個問題。

㈡ 關於SQL case when then else end 問題:有沒有錯我沒有運行出來。。。

1.第一行select後面的需要增加空格,否則語句中的select就和後面的語句連上了,會出現語法錯誤;
2.strSql = strSql + "(case when a.cd_Value = '40' then '其他人員' end) AS cd18, ";這行中cd18後的逗號去掉換成空格;
3.strSql = strSql + "FROM xt_t_CodeDetail a ,xt_t_CodeType b";這行中最後b後面需要增加空格。
試試吧。目前就看出這么多問題,如果還是有問題,把報錯提示發出來看看。

㈢ 關於sql server語句case when then else end 的語句怎麼用

--SQL中有判斷的地方就可以用到他,相當於Excel的iif()函數,其他語言的ifelse
--如果怎樣就怎樣,否則就怎樣
--比如,如果性別為1就顯示為男,否則就顯示為女
SelectName,casewhenSex=0then'男'else'女'end性別
FromZlEmployee

--行轉列
Select
Code,
CasewhenSex=0thenNameelse''endAs男,
CasewhenSex=1thenNameelse''endAs女
FromZlEmployee

--自定義排序
SelectName,SexfromZlEmployee
orderbycaseLeft(Name,1)
when'趙'then1
when'錢'then2
when'孫'then3
when'李'then4
when'周'then5
when'吳'then6
when'鄭'then7
when'王'then8
Else9End

㈣ 為啥SQL中select語句中,有時用:case......when …… then …… else …… end as x

selectsum(casewhenA.CLOSE_ID='T'then1else0end)from(selectdistinctA.CLOSE_ID,A.MO_NOfromA)T'完成種數'=COUNT(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)這句的邏輯就有問題,你要求A.CLOSE_ID='T'時,A.MO_NO的個數嗎看那樣你直接寫selectcount(A.MO_NO)fromAwhereA.CLOSE_ID='T'就好了就算你一定要用casewhenthen,你也要用sum而不是count,你用count是所以(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)的個數,就算是0,它也是個值,仍然會被count進去啊,你只有sum時,0才是不會起做用的數。

㈤ SQL條件控制(case when...then...else...end)

select ByeTime,case when len(ByeTime)>0 then str(DATEDIFF(day,ComeInTime,ByeTime))+'(已離職)'
else str(DATEDIFF(day,ComeInTime,getdate())) end as test
from myUser where DelFlag='0' and UserID='cq'
這樣試一下.語法應該沒有問題

㈥ 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部分將會被自動忽略。

(6)sqlthenelseend擴展閱讀:

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來定義別名。

㈦ sql case when then else end中一定要有else嗎

--可以不寫else但是一定要有end,沒有else如果不滿足條件會以null填充

㈧ sql server 中的 case when then else end中end起什麼作用我看有的語句沒有end也

selectsum(casewhenA.CLOSE_ID='T'then1else0end)from(selectdistinctA.CLOSE_ID,A.MO_NOfromA)T'完成種數'=COUNT(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)這句的邏輯就有問題,你要求A.CLOSE_ID='T'時,A.MO_NO的個數嗎?那樣你直接寫selectcount(A.MO_NO)fromAwhereA.CLOSE_ID='T'就好了就算你一定要用casewhenthen,你也要用sum而不是count,你用count是所以(CASEWHENA.CLOSE_ID='T'THENA.MO_NOELSE0END)的個數,就算是0,它也是個值,仍然會被count進去啊,你只有sum時,0才是不會起做用的數。

㈨ SQL條件控制(case when...then...else...end) 的詳細解釋是什麼

例如一個3條件取值的欄位:

casewhen條件1then取值1when條件2then取值2else取值3end

when後接條件語句,then後為欄位取值(數值或字元串等都可以,但類型須一致)。

㈩ sql的case when then else end我知道能判斷兩層,怎麼實現判斷三次呢

selectcasewhencolumn=1then'a'
whencolumn=2then'b'
elsec
end