成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

oracle怎么比較字符,oracle 字符型

oracle中字符串比較

在oracle中,將空字符串視為null,任何值與null比較結果都為null。如此一來,在比較兩個字符串的時候就會出現(xiàn)意外。請看以下的例子:declarei

創(chuàng)新互聯(lián)公司長期為成百上千家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為武寧企業(yè)提供專業(yè)的成都網站設計、成都網站制作、外貿網站建設,武寧網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發(fā)。

varchar2(10)

:=

null;

v

varchar2(10)

:=

'abc';beginif(i

=

v)

then

v

varchar2(10)

:=

'abc';beginif(i

v)

then

dbms_output.put_line('不等');elsedbms_output.put_line('相等');end

if;end;看上去和第一個程序沒有太大的差別,很容易就得出結果:'不等'。呵呵。你確定結果就是這個嗎?那么請你在sqlplus測試一下,來驗證你是正確的。很可惜,正確的結果應該是:'相等'。是不是很詫異?正如開始所說的:任何值與null比較結果都為null。即在第一個程序中的i=v比較的結果應該是null,而第二個程序中的iv比較的結果也是null。當if結構中的條件為null時,將跳過當前的分支進入到else或者是結束。不行嗎?那你運行一下以下的程序將可以等到驗證:beginif(null)

then

dbms_output.put_line('not

null');elsedbms_output.put_line('null');end

if;end;結果輸出的是:'null'。

1、當i和v都為null的時候,認為i和v相等。i

is

null

and

v

is

null(不要寫成這樣:i

=

v。從上邊的分析我們可以知道這樣寫的結果為null)。

2、當i和v中只有一個為null,肯定不相等。

3、當i和v都不為null的時候,我們就可以用‘=’號來判斷它們是否相等。i

is

not

null

and

v

is

not

null

and

i

=

v。

根據以上三點,我們可以得出判斷i和v相等的條件表達式:i

is

null

and

v

is

null

or

i

is

not

null

and

v

is

not

null

and

i

=

v。

那么兩個字符串不相等的條件表達式只需要判斷相等的表達式為false就可以了。

把判斷兩個字符串是否相等的功能寫成函數:

create

or

replace

function

isequal(var1

in

varchar2,

var2

in

varchar2)return

number

--

0:不等

1:相等

-1:錯誤isif(var1

is

null

and

var2

is

null

or

var1

is

not

null

and

var2

is

not

null

and

var1

=

var2)

thenreturn

1;elsereturn

0;enf

if;beginexceptionwhen

others

thenreturn

-1;end;以下上測試程序:declarevar1

varchar2(10)

:=

null;

oracle中字符串的大小比較,字符串與數字的比較和運算

Oracle比較字符串是根據ASCII碼來的,第一個字母的ASCII大小比較如果相等再比較下一個,類推。字符串和數字進行操作是會報異常的,因為類型不一樣不能進行比較。Oracle在執(zhí)行SQL的時候有些時候會自動轉換,比如:select

*

from

chan_customer

cc

where

cc.customer_id

=

'1';即使customer_id是數字型的也可以查出來,但是Oracle有區(qū)分字符和數字就是通過加不加單引號來區(qū)分。

oracle 字符串怎么比較?

在ORACLE中,將空字符串視為NULL,任何值與NULL比較結果都為NULL。如此一來,在比較兩個字符串的時候就會出現(xiàn)意外。請看以下的例子:DECLAREi VARCHAR2(10) := NULL;

v VARCHAR2(10) := 'ABC';BEGINIF(i = v) THEN

v VARCHAR2(10) := 'ABC';BEGINIF(i v) THEN

DBMS_OUTPUT.PUT_LINE('不等');ELSEDBMS_OUTPUT.PUT_LINE('相等');END IF;END;看上去和第一個程序沒有太大的差別,很容易就得出結果:'不等'。呵呵。你確定結果就是這個嗎?那么請你在SQLPLUS測試一下,來驗證你是正確的。很可惜,正確的結果應該是:'相等'。是不是很詫異?正如開始所說的:任何值與NULL比較結果都為NULL。即在第一個程序中的i=v比較的結果應該是NULL,而第二個程序中的iv比較的結果也是NULL。當IF結構中的條件為NULL時,將跳過當前的分支進入到ELSE或者是結束。不行嗎?那你運行一下以下的程序將可以等到驗證:BEGINIF(NULL) THEN

DBMS_OUTPUT.PUT_LINE('NOT NULL');ELSEDBMS_OUTPUT.PUT_LINE('NULL');END IF;END;結果輸出的是:'NULL'。

1、當i和v都為NULL的時候,認為i和v相等。i IS NULL AND v IS NULL(不要寫成這樣:i = v。從上邊的分析我們可以知道這樣寫的結果為NULL)。

2、當i和v中只有一個為NULL,肯定不相等。

3、當i和v都不為NULL的時候,我們就可以用‘=’號來判斷它們是否相等。i IS NOT NULL AND v IS NOT NULL AND i = v。

根據以上三點,我們可以得出判斷i和v相等的條件表達式:i IS NULL AND v IS NULL OR i IS NOT NULL AND v IS NOT NULL AND i = v。

那么兩個字符串不相等的條件表達式只需要判斷相等的表達式為FALSE就可以了。

把判斷兩個字符串是否相等的功能寫成函數:

CREATE OR REPLACE FUNCTION ISEQUAL(VAR1 IN VARCHAR2,

VAR2 IN VARCHAR2)RETURN NUMBER -- 0:不等 1:相等 -1:錯誤ISIF(VAR1 IS NULL AND VAR2 IS NULL OR VAR1 IS NOT NULL AND VAR2 IS NOT NULL AND VAR1 = VAR2) THENRETURN 1;ELSERETURN 0;ENF IF;BEGINEXCEPTIONWHEN OTHERS THENRETURN -1;END;以下上測試程序:DECLAREVAR1 VARCHAR2(10) := NULL;

當前題目:oracle怎么比較字符,oracle 字符型
文章網址:http://jinyejixie.com/article4/dseccoe.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站建設、外貿建站、微信公眾號網站策劃、定制開發(fā)、軟件開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網頁設計公司
甘孜县| 北宁市| 遂宁市| 太湖县| 永丰县| 余江县| 崇明县| 玛纳斯县| 特克斯县| 商南县| 南安市| 前郭尔| 康马县| 平南县| 马山县| 隆尧县| 定陶县| 聂荣县| 镶黄旗| 大悟县| 石屏县| 出国| 博兴县| 南部县| 商都县| 睢宁县| 封开县| 二手房| 富锦市| 怀宁县| 英山县| 许昌市| 东山县| 沾化县| 泰来县| 环江| 嵩明县| 商水县| 固镇县| 皮山县| 邹平县|