Delphi中的字符串比较重点注意Delphi和Oracle-SQL中比较字符串时空字符串""的根本性的不同
Delphi中字符串比较大小的规则:对应位置的字符按照字符编码值逐个对比,直到遇到可以确定大小关系的就结束比较
参考《Delphi的Ord函数和ASCII码对照表》
常见的一些字符的字符编码
"0"对应字符编码48;"1"对应字符编码49。"2"、"3"、……、"9"依次递增
"A"对应字符编码65。"B"、"C"、……"Y"、"Z"依次递增
"a"对应字符编码97。"b"、"c"、……"y"、"z"依次递增
" "对应字符编码32,注意是空格,而不是空字符串
比如"abcd" 和 "abd"比较
首先第一位"a"和"a"比较,一样,继续下面的比较
接着第二位"b"和"b"比较,一样,继续下面的比较
接着第三位"c"和"d"比较,"c"<"d",所以"abcd"<"abd",结果出来!比较结束
列举出常见的比较
"101"<"12"为True
"101"<"102"为True
"abcd">"abc"为True,这个需要注意
"12345">"1234"为True,这个需要注意
"1">"",在Delphi中任意非空字符串都大于空字符串""
可以自己在Delphi中编程试一下
procedure TForm1.btn1Click(Sender: TObject); begin //这里面的四种比较都是True,所以都会弹出框 if "123">"12" then ShowMessage(" ""123"">""12"" "); if "abcd">"abc" then ShowMessage(" ""abcd"">""abc"" "); if "1">"" then ShowMessage(" ""1"">"""" "); if "102">"10" then ShowMessage(" ""102"">""10"" "); end;Oracle SQL中的字符串比较
亲自在Oracle中验证过!
一般在SQL中的where条件中会用到字符串的比较,比如select * from user where name > "john"
首先特别注意"",和Delphi有一个很大的不同
任何字符串都不能和""进行比较,因为比较结果既不为True也不为False
如果在select的where判断中有和""的比较会导致选不出任何一条记录
除了小心""之外,其余同Delphi:对应位置的字符按照字符编码值逐个对比,直到遇到可以确定大小关系的就结束比较
几种常见的字符对应的编码
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中一样
其他的数据库的相关规则目前还没有试过,比如MySQL、SQLite……
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/35247.html
重点注意Delphi和Oracle-SQL中比较字符串时空字符串的根本性的不同 Delphi中的字符串比较 Delphi中字符串比较大小的规则:对应位置的字符按照字符编码值逐个对比,直到遇到可以确定大小关系的就结束比较 参考《Delphi的Ord函数和ASCII码对照表》 常见的一些字符的字符编码 0对应字符编码48;1对应字符编码49。2、3、……、9依次递增 A对应字符编码65。B、C、...
重点注意Delphi和Oracle-SQL中比较字符串时空字符串的根本性的不同 Delphi中的字符串比较 Delphi中字符串比较大小的规则:对应位置的字符按照字符编码值逐个对比,直到遇到可以确定大小关系的就结束比较 参考《Delphi的Ord函数和ASCII码对照表》 常见的一些字符的字符编码 0对应字符编码48;1对应字符编码49。2、3、……、9依次递增 A对应字符编码65。B、C、...
摘要:样本概况样本信息基本信息文件大小修改时间年月日病毒行为在系统目录下生成病毒程序并执行修改注册表添加启动项目录下产生文件关闭网络共享存在网络连接有加密的流程传输感染文件测试环境系统环境位位工具查看感染标记动态调试静态调试进程查看 01-样本概况 1.1-样本信息 基本信息 文件: C:/Us...
摘要:但是在中就只是声明,但是还没有分配空间,中的才是分配了内存的。对于语言会报错这样是对的详细说明原因只能是或者是没有这个是中的语法,所以要区分和的语法和机制如果用声明了对象会报错这才是正确的语法 C++中创建对象的两种语法 在c++的类中,我如果要访问类中的成员变量或函数,有2种方法,第一种就是定义一个一个对象,如: Class A ... A aa; aa.xxx(); 另外一种就是...
摘要:完全匹配到此为止即每个字典有相同的长度相同的键每个键也对应相同的值则字典完全匹配返回值。在这种情况下,长的序列被认为是较大的。否则,通过类型名字的字母顺序进行比较。总结列表元组的比较原则先大小后长短。 昨天看《核心编程》发现了一个鲜为人知的知识点,在Python中的字典比较和列表比较的策略竟然不相同,下面做具体分析。 字典比较原则 例子 >>> dict1 = {} >>> dict2...
阅读 1889·2021-11-24 10:28
阅读 3404·2021-11-08 13:15
阅读 3170·2021-10-14 09:42
阅读 2006·2019-08-30 14:20
阅读 1263·2019-08-28 18:08
阅读 872·2019-08-28 17:51
阅读 1318·2019-08-26 18:26
阅读 2868·2019-08-26 13:56