SQL正则表达式的应用 case的灵活应用
生活随笔
收集整理的這篇文章主要介紹了
SQL正则表达式的应用 case的灵活应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近需要使用到sql的正則表達式來判斷分數grade為數字, 但是在網上搜到的結果大多都會報錯:
SELECT FIRST_NAMEFROM EMPLOYEESWHERE REGEXP_LIKE(FIRST_NAME,'^al(an|yss)a$','i');最后終于找到一個能查詢成功的表達式
select grade from t_grade where grade REGEXP '^[0-9]*$'后面想利用case找出grade<60或grade='不及格'的信息
嘗試用:
SELECT grade, CASE WHEN grade='不及格' THEN grade WHEN grade REGEXP '^[0-9]*$' AND grade<60 THEN grade ELSE NULL END AS grade_rebuild FROM t_grade;發現結果是:
?可以發現并沒有篩選
所以要用到where進行篩選:
SELECT grade FROM t_grade WHERE CASE WHEN grade='不及格' THEN grade = '不及格' WHEN grade REGEXP '^[0-9]*$' THEN grade <60 END則可得到結果:
?
總結
以上是生活随笔為你收集整理的SQL正则表达式的应用 case的灵活应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql正则表达式
- 下一篇: SQL语句之正则表达式