Home > Back-end >  condition where a <> ' ' and a <> '' not working
condition where a <> ' ' and a <> '' not working

Time:03-24

I wrote a SQL to query table mat from an oracle db where column A is not null. Column A is varchar and its default value is ' '. I wrote the sql below:

select * from mat where matnr='test' and A <>'' and A <> ' '

But it return an empty data set.

Then I ran:

select * from mat where matnr='test' and A <> ' '

This query worked. So what is the reason? Thx.

CodePudding user response:

In Oracle, '' means NULL. Any direct comparison to NULL returns NULL instead of TRUE or FALSE, so you cannot say A <> '' - you must say A IS NOT NULL.

Another possibility would be to use the NVL function, replacing NULL with ' ', so that you could say

select * from mat where matnr='test' and NVL(A, ' ') <> ' '
  • Related