case数据库
㈠ case宸ュ叿镄凛ASE寮鍙戠幆澧
CASE浣滀负涓涓阃氱敤镄勮蒋浠舵敮鎸佺幆澧冿纴瀹冨簲鑳芥敮鎸佹墍链夌殑杞浠跺紑鍙戣繃绋嬬殑鍏ㄩ儴鎶链宸ヤ綔鍙婂叾绠$悊宸ヤ綔銆侰ASE镄勯泦鎴愯蒋浠跺伐鍏疯兘澶熶负绯荤粺寮鍙戣繃绋嬫彁渚涘叏闱㈢殑鏀鎸侊纴鍏朵綔鐢ㄥ寘𨰾锛氱敓鎴愮敤锲惧舰琛ㄧず镄勭郴缁熼渶姹傚拰璁捐¤勬牸璇存槑锛涙镆ャ佸垎鏋愮浉浜ゅ弶寮旷敤镄勭郴缁熶俊鎭锛涘瓨鍌ㄣ佺$悊骞舵姤锻婄郴缁熶俊鎭鍜岄”鐩绠$悊淇℃伅锛涘缓绔嬬郴缁熺殑铡熷瀷骞舵ā𨰾熺郴缁熺殑宸ヤ綔铡熺悊锛涚敓鎴愮郴缁熺殑浠g爜鍙婃湁鍏崇殑鏂囨。锛涘疄鏂芥爣鍑嗗寲鍜岃勬牸鍖栵绂瀵圭▼搴忚繘琛屾祴璇曘侀獙璇佸拰鍒嗘瀽锛涜繛鎺ュ栭儴璇嶅吀鍜屾暟鎹搴撱
涓轰简鎻愪緵鍏ㄩ溃镄勮蒋浠跺紑鍙戞敮鎸侊纴涓涓瀹屾暣镄凛ASE鐜澧冨叿链夌殑锷熻兘链夛细锲惧舰锷熻兘銆佹煡阌椤姛鑳姐佷腑蹇冧俊鎭搴撱侀珮搴﹂泦鎴愬寲镄勫伐鍏峰寘銆佸硅蒋浠跺紑鍙戠敓锻藉懆链熺殑鍏ㄩ溃瑕嗙洊銆佹敮鎸佸缓绔嬬郴缁熺殑铡熷瀷銆佷唬镰佺殑镊锷ㄧ敓鎴愩佹敮鎸佺粨鏋勫寲镄勬柟娉曡恒
涓涓瀹屽杽镄凛ASE鐜澧冨繀椤诲叿链変笅鍒楃壒寰侊细
锛1锛夎兘鐢熸垚缁撴瀯鍖栧浘镄勫浘褰㈡帴鍙c
锛2锛夎兘瀛桦偍鍜岀$悊镓链夎蒋浠剁郴缁熶俊鎭镄勪腑蹇冧俊鎭搴撱
锛3锛夊叡浜涓涓鍏鍏辩敤鎴锋帴鍙g殑楂桦害闆嗘垚鍖栫殑杞浠跺伐鍏峰寘銆
锛4锛夊叿链夎緟锷╂疮涓阒舵电殑宸ュ叿銆
锛5锛夊叿链夌敱璁捐¤勬牸璇存槑镊锷ㄧ敓鎴愪唬镰佺殑宸ュ叿銆
锛6锛夊湪宸ュ叿涓瀹炵幇鑳借繘琛屽悇绫绘镆ョ殑杞浠剁敓锻藉懆链熸柟娉曡恒
SQL语句中的CASE语句与高级语言中的switch语句,是标准SQL的语法,适用与一个条件判断有多种值的情况下分别执行不同的操作
灵活应用CASE语句可以使SQL语句变得简洁易读.
Case 使用方法:
Case具有两种格式。简单Case函数
和Case搜索函数。 --简单Case
函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
--Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
--比如说,下面这段SQL,你永远无法得到“第二类”这个结果
CASE WHEN col_1 IN ( 'a', 'b') THEN '第一类'
WHEN col_1 IN ('a') THEN '第二类'
ELSE'其他' END
㈢ oracle鏁版嵁搴揷ase闂棰
case when...then...else...end鏄痵ql镆ヨ㈢殑杩囨护𨱒′欢锛屽湪锅氱粺璁$殑镞跺椤父甯镐娇鐢ㄣ
琛╫rder锛坕d, status锛
select count(*) 璁㈠崟鏁帮纴sum(case when a.status='1' then 1 else 0 end) 寰呬粯娆撅纴sum(case when a.status='2' then 1 else 0 end) 寰呭彂璐э纴sum(case when a.status='3' then 1 else 0 end) 寰呮敹璐э纴sum(case when a.status='4' then 1 else 0 end) 宸插畬鎴愶纴sum(case when a.status='5' then 1 else 0 end) 宸插彇娑 fromorder
Oracle Database锛屽张钖峅racle RDBMS锛屾垨绠绉疠racle銆傛槸鐢查ㄦ枃鍏鍙哥殑涓娆惧叧绯绘暟鎹搴撶$悊绯荤粺銆傚畠鏄鍦ㄦ暟鎹搴挞嗗烟涓鐩村勪簬棰嗗厛鍦颁綅镄勪骇鍝併傚彲浠ヨ碠racle鏁版嵁搴撶郴缁熸槸鐩鍓崭笘鐣屼笂娴佽岀殑鍏崇郴鏁版嵁搴撶$悊绯荤粺锛岀郴缁熷彲绉绘嶆уソ銆佷娇鐢ㄦ柟渚裤佸姛鑳藉己锛岄傜敤浜庡悇绫诲ぇ銆佷腑銆佸皬銆佸井链虹幆澧冦傚畠鏄涓绉嶉珮鏁堢巼銆佸彲闱犳уソ镄 阃傚簲楂桦闷钖愰噺镄勬暟鎹搴撹В鍐虫柟妗堛