flink sql 中值为null时结果都为 false

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

flink sql 中值为null时结果都为 false

whirly
大家好:
    在 flink sql 中,如 SELECT * from order where  product <> 'rubber',如果数据中的 product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于 'rubber'
    只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
    但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null 的判断,可以怎么办呢?


感谢
Reply | Threaded
Open this post in threaded view
|

Re:flink sql 中值为null时结果都为 false

whirly
不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发














在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
>大家好:
>    在 flink sql 中,如 SELECT * from order where  product <> 'rubber',如果数据中的 product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于 'rubber'
>    只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
>    但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null 的判断,可以怎么办呢?
>
>
>感谢
Reply | Threaded
Open this post in threaded view
|

Re: flink sql 中值为null时结果都为 false

Benchao Li
Hi,

我这边只收到一封你第一次发的邮件,看起来应该是没有问题。(不知道是不是你邮箱客户端本地显示的问题)
关于你的问题,现在的确是这样子处理的。我想问一下,多加一个IS NOT NULL有什么问题么?

whirly <[hidden email]> 于2020年6月5日周五 下午9:54写道:

> 不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
> >大家好:
> >    在 flink sql 中,如 SELECT * from order where  product <> 'rubber',如果数据中的
> product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于 'rubber'
> >    只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
> >    但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null
> 的判断,可以怎么办呢?
> >
> >
> >感谢
>


--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: flink sql 中值为null时结果都为 false

Benchao Li
Hi,

我又想了一下这个问题,我认为这个行为的确是有点不太合理,我建了一个issue[1] 来跟踪这个事情。

[1] https://issues.apache.org/jira/browse/FLINK-18164

whirly <[hidden email]> 于2020年6月5日周五 下午11:20写道:

> 好的,可能只是我的邮件客户端显示的问题,感谢回复。
>
> 关于多加一个 is not null的判断的问题,po和我都觉得有些多此一举的感觉,而且有时候条件里字段很多,每个字段之前都需要加一个 is not
> null,难度也很大,且容易出错。
>
> 如果能有一个配置项控制 null <> 'someValue' 结果为true就好了
>
>
>
>
> whirly
> 邮箱:[hidden email]
>
> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=whirly&uid=whirlys%40163.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fwzpmmc%2F3d273b243ffcc939aed9ae09c4b2529e.jpg&items=%5B%22%E9%82%AE%E7%AE%B1%EF%BC%9Awhirlys%40163.com%22%5D>
>
> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail88> 定制
>
> 在2020年06月05日 23:08,Benchao Li <[hidden email]> 写道:
> Hi,
>
> 我这边只收到一封你第一次发的邮件,看起来应该是没有问题。(不知道是不是你邮箱客户端本地显示的问题)
> 关于你的问题,现在的确是这样子处理的。我想问一下,多加一个IS NOT NULL有什么问题么?
>
> whirly <[hidden email]> 于2020年6月5日周五 下午9:54写道:
>
> > 不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > 在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
> > >大家好:
> > >    在 flink sql 中,如 SELECT * from order where  product <>
> 'rubber',如果数据中的
> > product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于
> 'rubber'
> > >    只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
> > >    但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null
> > 的判断,可以怎么办呢?
> > >
> > >
> > >感谢
> >
>
>
> --
>
> Best,
> Benchao Li
>
>

--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: Re: flink sql 中值为null时结果都为 false

Benchao Li
哇,非常赞!
我也查了一下,在SQL标准里,bool表达式是有三种value的[1],分别是true、false、unknown。
而且null正常来讲是跟任何value都不相等的,包括另外一个null [2]。

所以如果执行`SELECT null <>
null`,返回结果应该unknown,在flink里,这个应该就是null,而不是true,或者false。
而如果在WHERE条件中出现这种情况的时候,比较的结果应该也是unknown[3],但是默认处理是按照false来处理的。

而`IS [NOT] DISTINCT FROM`就是专门用来处理对null值的比较的场景的。因为它可以处理null,所以它的返回值
只会是true或者false,而不会是unknown。对于你这个场景来说,应该是最合适的。

PS:回复邮件的时候,记得“回复全部”,这样我们的讨论社区里的小伙伴们都可以看到并且受益~

[1] https://modern-sql.com/concept/three-valued-logic
[2] https://modern-sql.com/feature/is-distinct-from
[3]
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/functions/systemFunctions.html#comparison-functions

whirly <[hidden email]> 于2020年6月6日周六 上午10:42写道:

> Hi.
> 我刚刚找到了解决方法了,flink sql builtin functions 中其实提供了另外的逻辑运算符 IS DISTINCT FROM
> 可以解决这个问题,
> IS DISTINCT FROM 也是不等于,相对于 <> ,Null IS DISTINCT FROM someValue 的结果是 True。
>
> best,
> whirly
>
>
>
>
>
>
> 在 2020-06-06 00:59:12,"Benchao Li" <[hidden email]> 写道:
>
> Hi,
>
> 我又想了一下这个问题,我认为这个行为的确是有点不太合理,我建了一个issue[1] 来跟踪这个事情。
>
> [1] https://issues.apache.org/jira/browse/FLINK-18164
>
> whirly <[hidden email]> 于2020年6月5日周五 下午11:20写道:
>
>> 好的,可能只是我的邮件客户端显示的问题,感谢回复。
>>
>> 关于多加一个 is not null的判断的问题,po和我都觉得有些多此一举的感觉,而且有时候条件里字段很多,每个字段之前都需要加一个 is
>> not null,难度也很大,且容易出错。
>>
>> 如果能有一个配置项控制 null <> 'someValue' 结果为true就好了
>>
>>
>>
>>
>> whirly
>> 邮箱:[hidden email]
>>
>> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=whirly&uid=whirlys%40163.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fwzpmmc%2F3d273b243ffcc939aed9ae09c4b2529e.jpg&items=%5B%22%E9%82%AE%E7%AE%B1%EF%BC%9Awhirlys%40163.com%22%5D>
>>
>> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail88> 定制
>>
>> 在2020年06月05日 23:08,Benchao Li <[hidden email]> 写道:
>> Hi,
>>
>> 我这边只收到一封你第一次发的邮件,看起来应该是没有问题。(不知道是不是你邮箱客户端本地显示的问题)
>> 关于你的问题,现在的确是这样子处理的。我想问一下,多加一个IS NOT NULL有什么问题么?
>>
>> whirly <[hidden email]> 于2020年6月5日周五 下午9:54写道:
>>
>> > 不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > 在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
>> > >大家好:
>> > >    在 flink sql 中,如 SELECT * from order where  product <>
>> 'rubber',如果数据中的
>> > product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于
>> 'rubber'
>> > >    只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
>> > >    但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null
>> > 的判断,可以怎么办呢?
>> > >
>> > >
>> > >感谢
>> >
>>
>>
>> --
>>
>> Best,
>> Benchao Li
>>
>>
>
> --
>
> Best,
> Benchao Li
>
>

--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

回复:flink sql 中值为null时结果都为 false

whirly
好的,非常感谢。

Best.
Whirly.


| |
whirly
|
|
邮箱:[hidden email]
|

签名由 网易邮箱大师 定制

在2020年06月06日 11:45,Benchao Li 写道:
哇,非常赞!
我也查了一下,在SQL标准里,bool表达式是有三种value的[1],分别是true、false、unknown。
而且null正常来讲是跟任何value都不相等的,包括另外一个null [2]。

所以如果执行`SELECT null <>
null`,返回结果应该unknown,在flink里,这个应该就是null,而不是true,或者false。
而如果在WHERE条件中出现这种情况的时候,比较的结果应该也是unknown[3],但是默认处理是按照false来处理的。

而`IS [NOT] DISTINCT FROM`就是专门用来处理对null值的比较的场景的。因为它可以处理null,所以它的返回值
只会是true或者false,而不会是unknown。对于你这个场景来说,应该是最合适的。

PS:回复邮件的时候,记得“回复全部”,这样我们的讨论社区里的小伙伴们都可以看到并且受益~

[1] https://modern-sql.com/concept/three-valued-logic
[2] https://modern-sql.com/feature/is-distinct-from
[3]
https://ci.apache.org/projects/flink/flink-docs-master/dev/table/functions/systemFunctions.html#comparison-functions

whirly <[hidden email]> 于2020年6月6日周六 上午10:42写道:

> Hi.
> 我刚刚找到了解决方法了,flink sql builtin functions 中其实提供了另外的逻辑运算符 IS DISTINCT FROM
> 可以解决这个问题,
> IS DISTINCT FROM 也是不等于,相对于 <> ,Null IS DISTINCT FROM someValue 的结果是 True。
>
> best,
> whirly
>
>
>
>
>
>
> 在 2020-06-06 00:59:12,"Benchao Li" <[hidden email]> 写道:
>
> Hi,
>
> 我又想了一下这个问题,我认为这个行为的确是有点不太合理,我建了一个issue[1] 来跟踪这个事情。
>
> [1] https://issues.apache.org/jira/browse/FLINK-18164
>
> whirly <[hidden email]> 于2020年6月5日周五 下午11:20写道:
>
>> 好的,可能只是我的邮件客户端显示的问题,感谢回复。
>>
>> 关于多加一个 is not null的判断的问题,po和我都觉得有些多此一举的感觉,而且有时候条件里字段很多,每个字段之前都需要加一个 is
>> not null,难度也很大,且容易出错。
>>
>> 如果能有一个配置项控制 null <> 'someValue' 结果为true就好了
>>
>>
>>
>>
>> whirly
>> 邮箱:[hidden email]
>>
>> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=whirly&uid=whirlys%40163.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fwzpmmc%2F3d273b243ffcc939aed9ae09c4b2529e.jpg&items=%5B%22%E9%82%AE%E7%AE%B1%EF%BC%9Awhirlys%40163.com%22%5D&gt;
>>
>> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail88&gt; 定制
>>
>> 在2020年06月05日 23:08,Benchao Li <[hidden email]> 写道:
>> Hi,
>>
>> 我这边只收到一封你第一次发的邮件,看起来应该是没有问题。(不知道是不是你邮箱客户端本地显示的问题)
>> 关于你的问题,现在的确是这样子处理的。我想问一下,多加一个IS NOT NULL有什么问题么?
>>
>> whirly <[hidden email]> 于2020年6月5日周五 下午9:54写道:
>>
>> > 不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > 在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
>> > >大家好:
>> > >    在 flink sql 中,如 SELECT * from order where  product <>
>> 'rubber',如果数据中的
>> > product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于
>> 'rubber'
>> > >    只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
>> > >    但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null
>> > 的判断,可以怎么办呢?
>> > >
>> > >
>> > >感谢
>> >
>>
>>
>> --
>>
>> Best,
>> Benchao Li
>>
>>
>
> --
>
> Best,
> Benchao Li
>
>

--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: flink sql 中值为null时结果都为 false

Leonard Xu
In reply to this post by Benchao Li
Hi,
Flink 用Calcite做sql解析和优化, 这是个 bool 的二值逻辑和三值逻辑处理问题,calcite默认在 where clause[2] 处理时 是用UNKNOWN_AS_FALSE mode, 这个结果是符合预期的, 类似的还有"x IS TRUE","JOIN ... ON x", "HAVING x。

[1] https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L1016 <https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L1016>
[2] https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java#L3462 <https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java#L3462>

Best,
Leonard Xu

> 在 2020年6月6日,11:45,Benchao Li <[hidden email]> 写道:
>
> 哇,非常赞!
> 我也查了一下,在SQL标准里,bool表达式是有三种value的[1],分别是true、false、unknown。
> 而且null正常来讲是跟任何value都不相等的,包括另外一个null [2]。
>
> 所以如果执行`SELECT null <>
> null`,返回结果应该unknown,在flink里,这个应该就是null,而不是true,或者false。
> 而如果在WHERE条件中出现这种情况的时候,比较的结果应该也是unknown[3],但是默认处理是按照false来处理的。
>
> 而`IS [NOT] DISTINCT FROM`就是专门用来处理对null值的比较的场景的。因为它可以处理null,所以它的返回值
> 只会是true或者false,而不会是unknown。对于你这个场景来说,应该是最合适的。
>
> PS:回复邮件的时候,记得“回复全部”,这样我们的讨论社区里的小伙伴们都可以看到并且受益~
>
> [1] https://modern-sql.com/concept/three-valued-logic
> [2] https://modern-sql.com/feature/is-distinct-from
> [3]
> https://ci.apache.org/projects/flink/flink-docs-master/dev/table/functions/systemFunctions.html#comparison-functions
>
> whirly <[hidden email]> 于2020年6月6日周六 上午10:42写道:
>
>> Hi.
>> 我刚刚找到了解决方法了,flink sql builtin functions 中其实提供了另外的逻辑运算符 IS DISTINCT FROM
>> 可以解决这个问题,
>> IS DISTINCT FROM 也是不等于,相对于 <> ,Null IS DISTINCT FROM someValue 的结果是 True。
>>
>> best,
>> whirly
>>
>>
>>
>>
>>
>>
>> 在 2020-06-06 00:59:12,"Benchao Li" <[hidden email]> 写道:
>>
>> Hi,
>>
>> 我又想了一下这个问题,我认为这个行为的确是有点不太合理,我建了一个issue[1] 来跟踪这个事情。
>>
>> [1] https://issues.apache.org/jira/browse/FLINK-18164
>>
>> whirly <[hidden email]> 于2020年6月5日周五 下午11:20写道:
>>
>>> 好的,可能只是我的邮件客户端显示的问题,感谢回复。
>>>
>>> 关于多加一个 is not null的判断的问题,po和我都觉得有些多此一举的感觉,而且有时候条件里字段很多,每个字段之前都需要加一个 is
>>> not null,难度也很大,且容易出错。
>>>
>>> 如果能有一个配置项控制 null <> 'someValue' 结果为true就好了
>>>
>>>
>>>
>>>
>>> whirly
>>> 邮箱:[hidden email]
>>>
>>> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=whirly&uid=whirlys%40163.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fwzpmmc%2F3d273b243ffcc939aed9ae09c4b2529e.jpg&items=%5B%22%E9%82%AE%E7%AE%B1%EF%BC%9Awhirlys%40163.com%22%5D>
>>>
>>> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail88> 定制
>>>
>>> 在2020年06月05日 23:08,Benchao Li <[hidden email]> 写道:
>>> Hi,
>>>
>>> 我这边只收到一封你第一次发的邮件,看起来应该是没有问题。(不知道是不是你邮箱客户端本地显示的问题)
>>> 关于你的问题,现在的确是这样子处理的。我想问一下,多加一个IS NOT NULL有什么问题么?
>>>
>>> whirly <[hidden email]> 于2020年6月5日周五 下午9:54写道:
>>>
>>>> 不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> 在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
>>>>> 大家好:
>>>>>   在 flink sql 中,如 SELECT * from order where  product <>
>>> 'rubber',如果数据中的
>>>> product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于
>>> 'rubber'
>>>>>   只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
>>>>>   但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null
>>>> 的判断,可以怎么办呢?
>>>>>
>>>>>
>>>>> 感谢
>>>>
>>>
>>>
>>> --
>>>
>>> Best,
>>> Benchao Li
>>>
>>>
>>
>> --
>>
>> Best,
>> Benchao Li
>>
>>
>
> --
>
> Best,
> Benchao Li

Reply | Threaded
Open this post in threaded view
|

Re: flink sql 中值为null时结果都为 false

Leonard Xu
Hello
更新下,社区这个 issue(FLINK-18164 <https://issues.apache.org/jira/browse/FLINK-18164>)和 Benchao 讨论后关闭了,因为当前Flink在处理 null 的行为是正确的,所以建议处理 null 时,都用 IS NULL , IS NOT NULL 先做下过滤再做逻辑判断,一般SQL里面也是这样处理的。

祝好,
Leonard Xu

> 在 2020年6月7日,17:22,Leonard Xu <[hidden email]> 写道:
>
> Hi,
> Flink 用Calcite做sql解析和优化, 这是个 bool 的二值逻辑和三值逻辑处理问题,calcite默认在 where clause[2] 处理时 是用UNKNOWN_AS_FALSE mode, 这个结果是符合预期的, 类似的还有"x IS TRUE","JOIN ... ON x", "HAVING x。
>
> [1] https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L1016 <https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java#L1016>
> [2] https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java#L3462 <https://github.com/apache/calcite/blob/master/core/src/main/java/org/apache/calcite/plan/RelOptUtil.java#L3462>
>
> Best,
> Leonard Xu
>
>> 在 2020年6月6日,11:45,Benchao Li <[hidden email] <mailto:[hidden email]>> 写道:
>>
>> 哇,非常赞!
>> 我也查了一下,在SQL标准里,bool表达式是有三种value的[1],分别是true、false、unknown。
>> 而且null正常来讲是跟任何value都不相等的,包括另外一个null [2]。
>>
>> 所以如果执行`SELECT null <>
>> null`,返回结果应该unknown,在flink里,这个应该就是null,而不是true,或者false。
>> 而如果在WHERE条件中出现这种情况的时候,比较的结果应该也是unknown[3],但是默认处理是按照false来处理的。
>>
>> 而`IS [NOT] DISTINCT FROM`就是专门用来处理对null值的比较的场景的。因为它可以处理null,所以它的返回值
>> 只会是true或者false,而不会是unknown。对于你这个场景来说,应该是最合适的。
>>
>> PS:回复邮件的时候,记得“回复全部”,这样我们的讨论社区里的小伙伴们都可以看到并且受益~
>>
>> [1] https://modern-sql.com/concept/three-valued-logic <https://modern-sql.com/concept/three-valued-logic>
>> [2] https://modern-sql.com/feature/is-distinct-from <https://modern-sql.com/feature/is-distinct-from>
>> [3]
>> https://ci.apache.org/projects/flink/flink-docs-master/dev/table/functions/systemFunctions.html#comparison-functions <https://ci.apache.org/projects/flink/flink-docs-master/dev/table/functions/systemFunctions.html#comparison-functions>
>>
>> whirly <[hidden email]> 于2020年6月6日周六 上午10:42写道:
>>
>>> Hi.
>>> 我刚刚找到了解决方法了,flink sql builtin functions 中其实提供了另外的逻辑运算符 IS DISTINCT FROM
>>> 可以解决这个问题,
>>> IS DISTINCT FROM 也是不等于,相对于 <> ,Null IS DISTINCT FROM someValue 的结果是 True。
>>>
>>> best,
>>> whirly
>>>
>>>
>>>
>>>
>>>
>>>
>>> 在 2020-06-06 00:59:12,"Benchao Li" <[hidden email]> 写道:
>>>
>>> Hi,
>>>
>>> 我又想了一下这个问题,我认为这个行为的确是有点不太合理,我建了一个issue[1] 来跟踪这个事情。
>>>
>>> [1] https://issues.apache.org/jira/browse/FLINK-18164
>>>
>>> whirly <[hidden email]> 于2020年6月5日周五 下午11:20写道:
>>>
>>>> 好的,可能只是我的邮件客户端显示的问题,感谢回复。
>>>>
>>>> 关于多加一个 is not null的判断的问题,po和我都觉得有些多此一举的感觉,而且有时候条件里字段很多,每个字段之前都需要加一个 is
>>>> not null,难度也很大,且容易出错。
>>>>
>>>> 如果能有一个配置项控制 null <> 'someValue' 结果为true就好了
>>>>
>>>>
>>>>
>>>>
>>>> whirly
>>>> 邮箱:[hidden email]
>>>>
>>>> <https://maas.mail.163.com/dashi-web-extend/html/proSignature.html?ftlId=1&name=whirly&uid=whirlys%40163.com&iconUrl=https%3A%2F%2Fmail-online.nosdn.127.net%2Fwzpmmc%2F3d273b243ffcc939aed9ae09c4b2529e.jpg&items=%5B%22%E9%82%AE%E7%AE%B1%EF%BC%9Awhirlys%40163.com%22%5D>
>>>>
>>>> 签名由 网易邮箱大师 <https://mail.163.com/dashi/dlpro.html?from=mail88> 定制
>>>>
>>>> 在2020年06月05日 23:08,Benchao Li <[hidden email]> 写道:
>>>> Hi,
>>>>
>>>> 我这边只收到一封你第一次发的邮件,看起来应该是没有问题。(不知道是不是你邮箱客户端本地显示的问题)
>>>> 关于你的问题,现在的确是这样子处理的。我想问一下,多加一个IS NOT NULL有什么问题么?
>>>>
>>>> whirly <[hidden email]> 于2020年6月5日周五 下午9:54写道:
>>>>
>>>>> 不好意思,刚刚发现163邮箱自动重发了好几次这个提问,不知道怎么回事,可能是邮箱bug? 实在打扰了,而且现在不知道是不是还会自动重发
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> 在 2020-06-05 14:25:10,"whirly" <[hidden email]> 写道:
>>>>>> 大家好:
>>>>>>   在 flink sql 中,如 SELECT * from order where  product <>
>>>> 'rubber',如果数据中的
>>>>> product 字段值是 null, 是无法匹配 product <> 'rubber' 这个条件的,虽然 null 确实不等于
>>>> 'rubber'
>>>>>>   只有将条件改为  where product is Null or product <> 'rubber' 才能匹配。
>>>>>>   但是我想要 null <> 'rubber' 的结果也为 True,且不想在条件之前加上 product is Null
>>>>> 的判断,可以怎么办呢?
>>>>>>
>>>>>>
>>>>>> 感谢
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> Best,
>>>> Benchao Li
>>>>
>>>>
>>>
>>> --
>>>
>>> Best,
>>> Benchao Li
>>>
>>>
>>
>> --
>>
>> Best,
>> Benchao Li
>