如 对于EMP表,编写一个语句只有当最低工资少于1000,而且最高工资超
  过2500时,才显示工资这一列。

解决方案 »

  1.   

    要在同一个查询中返回不同的列是不可能的。
    如果你的意思是要隐藏某个列的值那倒很容易。select col1, col2
         , case when min_salary < 1000 and max_salary > 2500 then salary
                else null
           end salary
    from emp;
      

  2.   

    一看到这个标题,就想到了case when
    最低工资少于1000,而且最高工资超过2500时
    这句话是什么意思?
    如果是2个字段名的话,楼上的语句就OK
      

  3.   


    --可以理解成1000,2500之间不显示数据!!
    select col1, col2 
        , case when salary between 1000 and 2500 then null
                else salary
          end salary 
    from emp;
      

  4.   

    sql语句不能控制字段的展现和隐藏,用procedure操作吧。
      

  5.   

    我的主题是: 数据库查询 满足某条件 则某列显示 否则某列不显示
    用procedure很不爽,莫非用一般sql语句真的做不到
      

  6.   

    用一条sql没法写。sql查询一定要指明查询的列
    如果不显示,也只是该列显示空值而已
    只能用过程来判断执行哪一句sql