oracle数据库全角半角问题
答案:2 悬赏:0 手机版
解决时间 2021-03-06 11:31
- 提问者网友:骨子里的高雅
- 2021-03-06 04:19
oracle数据库全角半角问题
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-03-06 05:33
TO_SINGLE_BYTE
语法: TO_SINGLE_BYTE(String )
功能: 计算String中所有多字节字符都替换为等价的单字节字符.该函数只有当数据库字符集同时包含多字节和单字节的字符的时候有效.否则, String不会进行任何处理.
TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的两个函数.
使用位置: 过程性语言和SQL语句。
select * from tableName where title = TO_MULTI_BYTE('&&')
语法: TO_SINGLE_BYTE(String )
功能: 计算String中所有多字节字符都替换为等价的单字节字符.该函数只有当数据库字符集同时包含多字节和单字节的字符的时候有效.否则, String不会进行任何处理.
TO_MULTI_BYTE和TO_SINGLE_BYTE是相反的两个函数.
使用位置: 过程性语言和SQL语句。
select * from tableName where title = TO_MULTI_BYTE('&&')
全部回答
- 1楼网友:妄饮晩冬酒
- 2021-03-06 06:15
select * from testtree tt where to_single_byte(tt.name) like '%&%'
你写的不够具体,很多的内容没有写,所以,不清楚你想要什么样的结果,如果你想查找表中含有某个字符,但是这个字符在某些记录中是存储的全角,在某些记录中是存储的半角,就用这种方法查询。
select * from testtree tt where length(tt.name)!=lengthb(tt.name)
上面的这个语句是查询所有含有全角字符的记录
希望对你有帮助!追问select * from testtree tt where to_single_byte(tt.name) like '%&%'
这个和我写的一样,我问题是:数据库中和 要 like 的这个字符串 中间都会有全角或半角字符,不管输入的是全角或半角字符都要能查询到数据,like的两边都不限制全角半角。
现在like的右边用to_single_byte或to_multi_byte是可以转换的,但是like左边用这个方法是没有转的。追答你猪啊,你一直就没有理解like是什么含义, where to_single_byte(tt.name) like '%&%'
你知道是什么含义吗?是把数据表中这个字段凡是全角的全部转换成半角,半角的不变,然后通过半角的内容进行匹配,能查询到这个字段中所有包含&这个的全角还有半角字符,别总是问,自己动手做一做,光说不做,你这辈子也学不好。
你写的不够具体,很多的内容没有写,所以,不清楚你想要什么样的结果,如果你想查找表中含有某个字符,但是这个字符在某些记录中是存储的全角,在某些记录中是存储的半角,就用这种方法查询。
select * from testtree tt where length(tt.name)!=lengthb(tt.name)
上面的这个语句是查询所有含有全角字符的记录
希望对你有帮助!追问select * from testtree tt where to_single_byte(tt.name) like '%&%'
这个和我写的一样,我问题是:数据库中和 要 like 的这个字符串 中间都会有全角或半角字符,不管输入的是全角或半角字符都要能查询到数据,like的两边都不限制全角半角。
现在like的右边用to_single_byte或to_multi_byte是可以转换的,但是like左边用这个方法是没有转的。追答你猪啊,你一直就没有理解like是什么含义, where to_single_byte(tt.name) like '%&%'
你知道是什么含义吗?是把数据表中这个字段凡是全角的全部转换成半角,半角的不变,然后通过半角的内容进行匹配,能查询到这个字段中所有包含&这个的全角还有半角字符,别总是问,自己动手做一做,光说不做,你这辈子也学不好。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯