代码之家  ›  专栏  ›  技术社区  ›  Mark A. Donohoe

在列表达式中可以使用“In”函数吗?

  •  0
  • Mark A. Donohoe  · 技术社区  · 6 年前

    使用Oracle 11。尝试为概念演示编写一些简单的代码。为了说明我想达到的目标,想象一下 SOMETABLE 它有两列:ID和NAME,如下所示:

    ID  NAME
    -------
    1   Tom
    2   Larry
    3   David
    4   Steve
    

    我试图计算第三列,如果第二列与两个硬编码值之一匹配,则该列为true。像这样的东西(当然不行)

    Select ID,
           NAME,
           (NAME in ('Larry', 'David')) as IS_FAVORITE
    from SOMETABLE
    

    ID  NAME   IS_FAVORITE
    ----------------------
    1   Tom    FALSE
    2   Larry  True
    3   David  True
    4   Steve  FALSE
    

    令我惊讶的是,有人告诉我甲骨文没有布尔的概念,我应该使用“数字字符串”或类似的东西,所以这也很好。。。

    ID  NAME   IS_FAVORITE
    ----------------------
    1   Tom    'N'
    2   Larry  'Y'
    3   David  'Y'
    4   Steve  'N'
    

    所以你能用 IN

    1 回复  |  直到 6 年前
        1
  •  1
  •   zealous    6 年前

    case 陈述。

    Select ID,
           NAME,
           CASE
            WHEN
                NAME in ('Larry', 'David')
            THEN
                'TRUE'
            ELSE
                'FALSE'
            END as IS_FAVORITE
    from SOMETABLE