zoukankan      html  css  js  c++  java
  • oracle数据库的case方法的简单使用

      case可以根据查询出来的列值选择性的改变值。举个栗子,有一个简单的表如学生表,学生表有个性别字段,但是这个字段类型时char(1)类型的,而想要取出的性别是中文显示的对应关系如下:(1:男,2:女,3:其他)这样的情况可以使用case 解决:现在假设要取出student表中的name,id,gender,(gender字段使用对应的中文替代):

    SELECT
        st.NAME,
        st.NAME,
    CASE
        st.gender 
        WHEN '1' THEN
        '' 
        WHEN '2' THEN
        '' 
        WHEN '3' THEN
        '其他' 
    END 
    FROM
        student st

     此外case when还有个很好的用途,就是可以在某个字段为空时取另外的字段

    如下:

    SELECT
        t.username AS name,
    CASE
        
        WHEN ( t.alias_name IS NULL OR length( t.alias ) = 0 ) THEN
        t.username 
        WHEN ( t.alias_name IS NOT NULL AND length( t.alias_name ) > 0 ) THEN
        t.alias_name ELSE '' 
        END AS aliasname 
    FROM
        forum_user t 
    WHERE
        user_grade = 'normal'

    上面SQL作用时,forum_user表中取user_grade为normal的username、alias_name字段。当ailas_name为空或者空字符长度为0时取username,当alias_name不为空且字符长度大于0时取alias_name,否则返回空字符。

  • 相关阅读:
    Lua 的元表怎么理解
    Lua中的元表与元方法
    Lua 的元表怎么理解
    VMware Workstation 系统备份-虚拟机克隆方法
    Lua中的元表与元方法
    bzoj2809
    bzoj2733
    bzoj1334
    bzoj1211
    bzoj3083 3306
  • 原文地址:https://www.cnblogs.com/notably/p/11913838.html
Copyright © 2011-2022 走看看