W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
字符數(shù)據(jù)是根據(jù)字符值大小比較的,而字符值則根據(jù)以下兩種度量進(jìn)行比較:
在默認(rèn)的二進(jìn)制比較中,OceanBase 根據(jù)數(shù)據(jù)庫字符集中字符的數(shù)字代碼的級聯(lián)值比較字符串。如果一個字符在字符集中的數(shù)值大于另一個,則該字符更大。OceanBase 不支持 ASCII 字符集和 EBCDIC 字符集。
在語言排序中,SQL 排序和比較都按照 ?NLS_SORT
? 指定的語言規(guī)則。若字符編碼的二進(jìn)制序列與字符集要求的語言序列不匹配,則使用語言比較。若 ?NLS_SORT
? 參數(shù)的設(shè)置不是 ?BINARY
?,且 ?NLS_COMP
? 參數(shù)設(shè)置為 ?LINGUISTIC
?,則使用語言比較。
使用空白填充語義,若兩個值的長度不同,則 OceanBase 首先將空格添加到較短的空格的末尾,以便它們的長度相等。然后,OceanBase 逐個字符地比較值,直到第一個不同的字符為止。在第一個不同位置具有較大字符的值被認(rèn)為較大。如果兩個值沒有不同的字符,則認(rèn)為它們相等。此規(guī)則意味著兩個值僅在尾隨空白數(shù)上不同時相等。
注意
只有當(dāng)比較中的兩個值都是數(shù)據(jù)類型 CHAR、NCHAR、文本文字或 USER 函數(shù)返回的值時,OceanBase 就會使用空白填充的比較語義。
使用非填充語義,OceanBase 逐個字符地比較兩個值,直到第一個不同的字符為止。該位置上具有較大字符的值被認(rèn)為較大。如果兩個不同長度的值在較短的值之前一直相同,則較長的值被認(rèn)為較大。如果兩個長度相等的值沒有不同的字符,則認(rèn)為這些值相等。
注意
只要比較中的一個或兩個值的數(shù)據(jù)類型為 ?VARCHAR2
? 或 ?NVARCHAR
?2,OceanBase 就會使用非填充比較語義。
使用不同的比較語義比較兩個字符值的結(jié)果不同。本示例顯示了使用空白填充語義和非填充語義比較。
空白填充 |
非填充 |
---|---|
'ac' > 'ab' |
'ac' > 'ab' |
'ab' > 'a ' |
'ab' > 'a ' |
'ab' > 'a' |
'ab' > 'a' |
'ab' = 'ab' |
'ab' = 'ab' |
'ac' > 'ab' |
'ac' > 'ab' |
'a ' = 'a' |
'a ' > 'a' |
通常,空白填充和非填充比較的結(jié)果是相同的。而最后一行的比較示例說明了空白填充和非填充比較語義之間的區(qū)別。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: