【问题标题】:select on the basis of some specific value根据某些特定值进行选择
【发布时间】:2021-09-15 15:36:02
【问题描述】:

我在mysql中有一个输入表

   colA   colB
   ------------
   ABC      -3
   DEF       2
   GHI      -1 
   ABC       4
   DEF      -2 
   GHI      -1
   JKL       2

我想输出为

   colA   colB
   ------------
   DEF       2
   GHI      -1 
   ABC       4
   DEF      -2 
   GHI      -1
   JKL       2

我只想排除 colA = 'ABC' 的 colB 的负值,并希望保留 ('DEF','GHI','JKL') 中 colA 的所有负值和正值

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你可以试试下面的

    SELECT 
        colA,
        colB
    FROM
        my_table
    WHERE
       NOT (colA = 'ABC' and colB < 0)
    

    View Demo Fiddle

    让我知道这是否适合你。

    【讨论】:

      【解决方案2】:
      SELECT colA, colB
      FROM table_name
      WHERE colB>=0 OR colA IN ('DEF','GHI','JKL');
      

      第二个解决方案

      SELECT colA, colB
      FROM table_name
      WHERE colB>=0 OR colA!='ABC';
      

      【讨论】:

        【解决方案3】:

        其中一种方法是使用 OR 条件。

        SELECT * FROM input_table WHERE colA <> 'ABC' or colB > 0;
        

        此查询将返回满足以下任一条件的行:

        • colA 不同于“ABC”
        • colB 为阳性

        如果两个条件都为假,则不会返回该行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-22
          • 2012-10-23
          • 2021-05-17
          相关资源
          最近更新 更多