淺析Oracle中的不等號

來源:互聯網
上載者:User

關於Oracle中的不等號:
在Oracle中,
<>
!=
~=
^=
都是不等號的意思。都可以使用。
但是奇怪是的, 我想拿出price不是180000的商品時:(price是Number類型的)
SELECT id, name  FROM product where price<> 180000;
執行這個語句時,priceis null  的記錄不出來。也就是拿不到price是null的商品。必須使用:
SELECT id, name  FROM product where price<> 180000 or price is null;才行。
字串的欄位存在同樣的問題。
記住:null只能通過is null或者is not null來判斷,其它操作符與null操作都是false。
==============================================================
測試:select * from test where name<>'xn'。只能查出name非空的記錄。去掉name<>'xn'就可以了。這種寫法有問題。
然後用了instr(name,'xn')=0 來判斷,如果name非空的話,判斷還是有效。如果name為空白,這個判斷又出問題了。不得已只得採取instr(concat(name,'xx'),'xn') = 0來判斷,因為就算name為空白,當和'xx'串連後,也會不為空白的。
所以最後的sql語句為:
select * from test where instr(concat(name,'xx'),'xn') = 0 來查詢name欄位不等於'xn'的記錄。
或者可以用 select * from test where nvl(name,'xx')<>'xn' 來查詢name欄位不等於'xn'的記錄。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.