SQL 查询 "like" 运算符错误,当字段为空时

SQL Query "like" operator error, when the field is null

此查询returns 421条记录:

现在当我实现 "like" 运算符时,它 returns 349 条记录,它没有考虑字段 "invoice_number" 为 null 的记录:

null like '%%' 这样的条件是错误的。 null 不是 like 任何东西。所以如果你想允许 null 值,你需要明确说明:

and (ds.numero_factura like '%%' or ds.numero_factura is null)

或者您可以使用 coalesce():

 and coalesce(ds.numero_factura, '') like '%%'

虽然这个条件并没有真正意义(基本上它会允许所有记录),所以你需要根据你的具体用例来调整它。

另外一个说明是ds.numero_factura看起来像一个数字;在这种情况下,您不想在其上使用字符串函数:而是使用数字函数。