我試圖得到一個具體的結果。條件很簡單,但仍然……查詢可以嗎?
- 如果源的第一個字母是“M”或“m”,則在目標中加載“M”
- 如果源的第一個字母是“F”或“f”,則在目標中加載為“F”
- 否則設定為 NULL
case when substr(GENDER,1,1) = 'M' then 'M',
when substr(GENDER,1,1) = 'm' then 'M'
when substr(GENDER,1,1) = 'F' then 'F'
when substr(GENDER,1,1) = 'f' then 'F'
else NULL
uj5u.com熱心網友回復:
稍微簡單一些
case when upper(substr(gender, 1, 1)) in ('M', 'F') then upper(substr(gender, 1, 1))
else null
end
但是...是的,您的代碼也可以。你沒測驗嗎?
uj5u.com熱心網友回復:
您有一個雜散的逗號,并且end對 case 運算式沒有,但除此之外,您所擁有的也是有效的。
您可以將其簡化為一個簡單的(而不是搜索的)案例運算式:
case substr(GENDER,1,1)
when 'M' then 'M'
when 'm' then 'M'
when 'F' then 'F'
when 'f' then 'F'
else NULL
end as target
甚至更短:
case upper(substr(GENDER,1,1))
when 'M' then 'M'
when 'F' then 'F'
else NULL
end as target
或者正如else NULL暗示的那樣,您也可以將其省略:
case upper(substr(GENDER,1,1))
when 'M' then 'M'
when 'F' then 'F'
end as target
db<>小提琴
uj5u.com熱心網友回復:
如果您只想要整個單詞的大寫字母,請執行以下操作:
SELECT upper(substr(GENDER,1,1))||substr(GENDER,2,length(GENDER)-1) as target
如果你只需要像“F”或“M”這樣的縮寫形式,你只需要前面提到的陳述句的第一部分:
SELECT upper(substr(GENDER,1,1) as target
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/518039.html
標籤:sql甲骨文
上一篇:創建表會出現“缺少右括號”錯誤
