大家好:
在 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 的判断,可以怎么办呢? 感谢 |
不好意思,刚刚发现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 的判断,可以怎么办呢? > > >感谢 |
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 |
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 |
哇,非常赞!
我也查了一下,在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 |
好的,非常感谢。
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> >> >> 签名由 网易邮箱大师 <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 |
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 |
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 > |
Free forum by Nabble | Edit this page |