sqlserveroracle中,’’’ ’的含义是不一样的:

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;