代码之家  ›  专栏  ›  技术社区  ›  Tony Borf

SQL结果中的y或n

sql
  •  0
  • Tony Borf  · 技术社区  · 16 年前

    如果某列的值大于某个数字(如“25”),是否可以让查询返回该列的“y”或“n”。

    我在Zos上使用DB2

    8 回复  |  直到 16 年前
        1
  •  7
  •   Mark Sherretta    16 年前
    SELECT CASE WHEN Col1 > 25 THEN 'Y' ELSE 'N' END As Value1
    FROM Table1
    
        2
  •  4
  •   AvatarKava    16 年前

    对于MySQL:

    SELECT IF(column > 25, 'Y', 'N')
      FROM table
    

    http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if

        3
  •  1
  •   Daniel A. White    16 年前
        4
  •  0
  •   Shiraz Bhaiji    16 年前

    使用SQL CASE语句

        5
  •  0
  •   Cahlroisse    16 年前
    SELECT CASE WHERE columnname > 25 THEN 'Y' ELSE 'N' END FROM table;
    
        6
  •  0
  •   tpdi    16 年前
    select 
    case when somecolumn > 25 then 'Y' else 'N' end as somename
    from sometable;
    
        7
  •  0
  •   Neil N HLGEM    16 年前

    Select If(myColumn > 25, 'Y', 'N') From myTable

        8
  •  0
  •   Cruachan    16 年前

    除了if和case语句之外,另一个有效的选择是在列值中创建一个用户定义的函数,并返回y或n。

    这有一个不可忽视的优点,即如果您在超过SQL语句的条件下选择此条件,并且在以后的某个日期条件更改为超过30个条件,那么您只有一个地方可以更改代码。虽然使用一个函数会增加复杂性和开销,所以并不总是最佳的,但不要低估这种方法的维护优势。另外一个小的优点是,您可以使函数的名称比内联案例更有意义,因此可以自我记录。