【问题标题】:Empty string SQL not working空字符串 SQL 不起作用
【发布时间】:2015-06-10 23:39:19
【问题描述】:

我有一个成绩表,其中每个成绩不能为 NULL。每个等级都是一个文本,所以我猜如果该列是空的,那么它是一个空字符串,''。我想选择成绩为空的列。我在做:

SELECT student FROM simulated_records WEHRE grade = ' ';

但这不起作用,我不明白为什么。有正确的方法吗?我是 SQL 新手。

【问题讨论】:

  • 存储“空”成绩是个坏主意。如果成绩未知/未设置,则使用 NULL。
  • SQL 查询中的“where”语句拼写错误。
  • ' ' 不是一个“空”字符串,它是一个包含一个(空格)字符的字符串空字符串是''

标签: sql database string postgresql text


【解决方案1】:

以下内容将解决您的数据库表中可能存在的两种情况。第一个是“空值”,即从未设置该值并且允许空值。第二个是空字符串。

SELECT student FROM simulated_records WHERE trim(both from grade) = '' OR grade IS NULL

【讨论】:

  • 修剪字符串将使其适用于空格和空字符串:where trim(both from grade) = '' or grade is null
  • 虽然这会使事情顺利进行,但我建议使您的列可以为空,并将列更新为空,其中它有一个空白或空字符串。一旦完成使用为空。
  • 嗨@Rachelle,如果这个或任何答案解决了您的问题,请点击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。
【解决方案2】:

如果您想选择带有空成绩列的列,那么您为什么要寻找“”?有空的空间。试试这个

SELECT student FROM simulated_records WHERE grade IS NULL;

【讨论】:

    【解决方案3】:

    每个等级不能为NULL,所以不需要检查“等级为NULL”就行了

    SELECT student FROM simulated_records WEHRE TRIM(grade) = '';
    

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 2016-03-02
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2016-06-05
      • 1970-01-01
      • 2012-11-30
      相关资源
      最近更新 更多