在sqlserver和oracle中,’’和’ ’的含义是不一样的:
在sqlserver中,’’和’ ’都代表空的意思也就是它们的返回值是一样的,例如:
select case when ‘1’<>’’ then ‘ok’ else ‘no’ end;
select case when ‘1’<>’ ’ then ‘ok’ else ‘no’ end;
这两个的返回值都为ok
在oracle中,’’代表null,’ ‘则代表着空,例如:
select case when ‘1’<>’’ then ‘ok’ else ‘no’ end from dual;
这个返回的值为no
select case when ‘1’<>’ ’ then ‘ok’ else ‘no’ end from dual;
这个返回的值为ok
如果想让两个返回的值相同,要用到nvl函数(这个函数的作用就是判断所比较的值是否为null)
select case when '1'<>nvl('',' ') then 'ok' else 'no' end from dual;
转载于:https://blog.51cto.com/sucre/417710