选择字段非空的所有项目

时间:2016-07-30 13:20:07

标签: mysql sql postgresql

我试图从一个非空字段的表中选择所有行。我的SQL查询是

SELECT * FROM coupon_category WHERE customer=4 AND like_at <>;

但它最终显示语法错误。什么是正确的查询? like_at是日期时间类型

4 个答案:

答案 0 :(得分:3)

假设like_at是一个字符串,一个简单的方法是:

WHERE customer = 4 AND like_at <> ''

当然,这取决于非空的意思。

这通常会引用NULL,因此对于任何类型都是:

WHERE customer = 4 AND like_at IS NOT NULL

注意:第一个版本还会过滤掉NULL值以及空字符串(假设like_at的类型是字符串)。

答案 1 :(得分:2)

如果要排除空格并可能为空,请尝试:

SELECT * FROM coupon_category WHERE customer=4 AND like_at <> '';

答案 2 :(得分:0)

查询解释器期望&lt;&gt;之后的值迹象。 如果要选择字段不为空的所有行,则应执行以下操作:

public class UploadView extends ViewWithUiHandlers<UploadUiHandlers> implements UploadPresenter.MyView,IndicatorStartEvent.IndicatorHandler {

    @UiField
    FileUploadWidget uploadWidget;

    @Inject
    public UploadView(final Binder binder) {
      widget = binder.createAndBindUi(this);    
      uploadWidget.addHandler(new IndicatorStartEvent.Handler(),this);
    }

    public void onIndicatorProgressStart(IndicatorStartEvent event) {
       MaterialToast.fireToast("Indicator start: " + event.getMessage());
    }
}

也许您也可以检查空值。

答案 3 :(得分:0)

这取决于当like_at为空时发生的事情,重要的是&#34; cell&#34;是空的,它给你null?

如果单元格为空,则可以使用

  SELECT * FROM coupon_category WHERE customer=4 AND len(like_at)>0

如果它给你null,那么:

  SELECT * FROM coupon_category WHERE customer=4 AND like_at is not null