日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小

發(fā)布時(shí)間:2023/12/9 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

重點(diǎn)注意Delphi和Oracle-SQL中比較字符串時(shí)空字符串''的根本性的不同

Delphi中的字符串比較

  • Delphi中字符串比較大小的規(guī)則:對應(yīng)位置的字符按照字符編碼值逐個(gè)對比,直到遇到可以確定大小關(guān)系的就結(jié)束比較

  • 參考《Delphi的Ord函數(shù)和ASCII碼對照表》

  • 常見的一些字符的字符編碼

    • '0'對應(yīng)字符編碼48;'1'對應(yīng)字符編碼49。'2'、'3'、……、'9'依次遞增

    • 'A'對應(yīng)字符編碼65。'B'、'C'、……'Y'、'Z'依次遞增

    • 'a'對應(yīng)字符編碼97。'b'、'c'、……'y'、'z'依次遞增

    • ' '對應(yīng)字符編碼32,注意是空格,而不是空字符串

  • 比如'abcd' 和 'abd'比較

    • 首先第一位'a'和'a'比較,一樣,繼續(xù)下面的比較

    • 接著第二位'b'和'b'比較,一樣,繼續(xù)下面的比較

    • 接著第三位'c'和'd'比較,'c'<'d',所以'abcd'<'abd',結(jié)果出來!比較結(jié)束

  • 列舉出常見的比較

    • '101'<'12'為True

    • '101'<'102'為True

    • 'abcd'>'abc'為True,這個(gè)需要注意

    • '12345'>'1234'為True,這個(gè)需要注意

    • '1'>'',在Delphi中任意非空字符串都大于空字符串''

可以自己在Delphi中編程試一下

procedure TForm1.btn1Click(Sender: TObject); begin //這里面的四種比較都是True,所以都會彈出框if '123'>'12' thenShowMessage(' ''123''>''12'' ');if 'abcd'>'abc' thenShowMessage(' ''abcd''>''abc'' ');if '1'>'' thenShowMessage(' ''1''>'''' ');if '102'>'10' thenShowMessage(' ''102''>''10'' '); end;

Oracle SQL中的字符串比較

  • 親自在Oracle中驗(yàn)證過!

  • 一般在SQL中的where條件中會用到字符串的比較,比如select * from user where name > 'john'

  • 首先特別注意'',和Delphi有一個(gè)很大的不同

    • 任何字符串都不能和''進(jìn)行比較,因?yàn)楸容^結(jié)果既不為True也不為False

    • 如果在select的where判斷中有和''的比較會導(dǎo)致選不出任何一條記錄

  • 除了小心''之外,其余同Delphi:對應(yīng)位置的字符按照字符編碼值逐個(gè)對比,直到遇到可以確定大小關(guān)系的就結(jié)束比較

  • 幾種常見的字符對應(yīng)的編碼

    • select ascii('1') from dual; 字符編碼值 49

    • select ascii('A') from dual; 字符編碼值 65

    • select ascii('a') from dual; 字符編碼值 97

    • select ascii(' ') from dual; 字符編碼值 32

  • 列舉出常見的比較

    • 'abcd'>'abc'為True,和Delphi中一樣

    • '12345'>'1234'為True,和Delphi中一樣

  • 其他的數(shù)據(jù)庫的相關(guān)規(guī)則目前還沒有試過,比如MySQL、SQLite……

總結(jié)

以上是生活随笔為你收集整理的Delphi中字符串比较大小 VS Oracle-SQL中字符串比较大小的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。