代码之家  ›  专栏  ›  技术社区  ›  Jim

当列等于certan值时动态更改列中的值

  •  0
  • Jim  · 技术社区  · 15 年前

    我有一列值打印不适用。我想打印三个短划线,而不是不适用。需要注意的一点是 一些 列中的值不是N/A,因此我需要打印这些值。基本上我想用“不适用”代替“—”。有人能告诉我怎么做吗?

    谢谢

    4 回复  |  直到 15 年前
        1
  •  1
  •   thomas    15 年前

    您可以尝试以下操作。mysql的case-statement文档可以在这里找到。

    http://dev.mysql.com/doc/refman/5.0/en/case-statement.html

    case
      when field = 'N/A' then '---'
      else field
    end
    
        2
  •  1
  •   The Disintegrator    15 年前

    这个怎么样?

    SELECT field1, field2, IF(field3='N/A','---',field3) AS field3 FROM table
    

    还是我误解了你的问题?

        3
  •  1
  •   ChssPly76    15 年前
    SELECT IF(STRCMP(my_column,'N/A'),my_column,'---')
     FROM my_table
    
        4
  •  0
  •   Darryl Hein IrishChieftain    15 年前

    这是CHSSPLY76答案的修订版:

    SELECT IF(field_name = 'N/A', '---', field_name) AS field_name
    FROM table
    

    这样可以解决所有字段都打印为的问题,并且结果中也会有一个名称正确的列。