Oracle的varchar2如何比較大小


首先要說的是Oracle中字符類型的比較都是基於ASCII碼表來實現的,我就簡單做個總結。

Oracle中varchar2類型的字符串使用的是非填充空格的標准來進行比較的(表格中右邊的那列,注意空格的情況)。

Blank-Padded 

Nonpadded
'ac' > 'ab'  'ac' > 'ab'
'ab' > 'a  '  'ab' > 'a   '
'ab' > 'a'  'ab' > 'a'
'ab' = 'ab'  'ab' = 'ab'
'a ' = 'a'  'a ' > 'a'

 

 

 

 

 

 

 

 

在比較時(類型一致的前提下),如果長度一致,會先比較第一個字符的在ASCII碼中的大小,大的那個則整個字符串大於小的那個字符串,否則就比較下一個字符,方法同此;

如果長度不一致,比較方法同上,只是存在值的字符位的值大於不存在值的,存在空格的也是把另一個字符串對應字符位的值和ASCII碼中空格的值進行比較。

存在錯誤歡迎指正,謝謝!

參考資料(對另外的字符類型也有說明):

https://blog.csdn.net/rockpk008/article/details/41087679

https://blog.csdn.net/xiadingling/article/details/82115860

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM