如何搜索“→”(0x1A)这样的特殊字符? 我的查询的一个例子是:
select * from Data where Name like '%→%'
我想用“→”代替0x1A。
我不能使用任何Java或C#代码。我只是让SQuirrel连接并向数据库发送命令。
答案 0 :(得分:2)
您可以使用chrome()搜索字符:
select * from data where name like '%' + chr(26) + '%'
答案 1 :(得分:1)
旧话题,但仍是当前的问题。我的DB2环境在AS400 / iSeries上运行,并使用EBCDIC而不是ASCII。我在lookuptables.com的EBCDIC表格中找到了这个角色。
ASCII 0x1a转换为SUB,SUB转换为EBCDIC 0x3f。
在SQL中使用它看起来像这样:
select productDescription
from productsTable
where productDescription like '%' || x'3F' || '%'`
答案 2 :(得分:0)
解决方案1:使用chr(26)
。
解决方案2:使用Java或其他编程语言编写查询,从而可以从多个部分构建SQL,并在其中输入十六进制代码。
答案 3 :(得分:0)
此查询过去曾在iSeries DB2上使用过。
select * from db/table where posstr(field, x'3F') > 0
麻烦的是你必须确定你在字符串中搜索的十六进制值。我有一个类似的情况,我确信该字符的十六进制代码是x' 3F,但是当我对不可见的字符进行子字符串时,它实际上是x' 22。你可能想要挑出给你问题的角色,看看它的价值是什么。
select hex(substr(field, 21,1)) from db/table where posstr(field, 'StringBeforeCharacter') > 0