IT分销/经销数据库

有什么字符时%不能通配的吗?

麻烦各位看看,能不能给个合理解释

db2 describe table biz.wac

                                数据类型                      列
列名                             模式       数据类型名称      长     小数位      NULL
------------------------------- --------- ------------------- ---------- ----- ------
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CODE                            SYSIBM    CHARACTER                   15     0 否
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

db2 select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE'

CODE
---------------
AG  _OEM
AG_OEM

db2 select code from biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG%_OEM'

CODE
---------------

  0 条记录已选择。
  
db2 select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG?_OEM'

CODE
---------------

  0 条记录已选择。


db2 select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG??_OEM'

CODE
---------------

  0 条记录已选择。
  
db2 select code from  ebiz1.web_appl_cnstnt where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG%_OEM%'

CODE
---------------
AG  _OEM
AG_OEM

  2 条记录已选择。
参与17

16同行回答

limin19821limin19821系统工程师乐酷天
感谢各位啊! 在linux下问题不见了,在windows DB2 CLP下才有这个问题,大家可能注意到了, AP  _OEM是想删掉的数据,是由于程序一个错误导致这个数据入库了,大概是这个样子的xxxxxxpoParam1     char(4) ;poParam2     char(4)...显示全部
感谢各位啊! 在linux下问题不见了,在windows DB2 CLP下才有这个问题,
大家可能注意到了, AP  _OEM是想删掉的数据,是由于程序一个错误导致这个数据入库了,
大概是这个样子的
xxxxxx
poParam1     char(4) ;
poParam2     char(4) ;
xxxxxxx
poParam1  = RTRIM(poParam1);
poParam2  = xxxxxxx;
xxxxxxxxxxx
poreturn = poParam1 ||  poParam2 ;
程序把poreturn  入库了造成这种现象。
其实poParam1     = RTRIM(poParam1);是有问题,相当于白trim了。收起
IT分销/经销 · 2011-02-24
浏览977
weiruan85weiruan85数据库管理员ibm
ninth 是对的,有特殊字符,一般的select 不出来,就export 出来,看看del 文件里边到底啥样子的 。然后对症下药显示全部
ninth 是对的,有特殊字符,一般的select 不出来,就export 出来,看看del 文件里边到底啥样子的 。

然后对症下药收起
政府机关 · 2011-02-24
浏览964
zss0109211zss0109211数据库管理员null
DB2 的通配符与标准SQL不同,真是误导人。FYI将模式匹配(LIKE)谓词添加至 SQL 语句模式匹配(LIKE)谓词搜索有特定模式的字符串。可使用通配符来修改搜索。模式中的结尾空白是该模式的一部分。这些步骤是将搜索条件添加至 SQL 语句(WHERE 或 HAVING 子句)这一大型任务的一部分。完...显示全部
DB2 的通配符与标准SQL不同,真是误导人。
FYI
将模式匹配(LIKE)谓词添加至 SQL 语句
模式匹配(LIKE)谓词搜索有特定模式的字符串。可使用通配符来修改搜索。模式中的结尾空白是该模式的一部分。

这些步骤是将搜索条件添加至 SQL 语句(WHERE 或 HAVING 子句)这一大型任务的一部分。完成了将简单比较谓词添加至 SQL 语句的步骤时,返回到将搜索条件添加至 SQL 语句(WHERE 或 HAVING 子句)。

要将模式匹配(LIKE)谓词添加至 SQL 语句:

1.在运算符列表中,指定要执行的模式匹配的类型:
◦要返回包含了在下一步骤中指定的字符串的行,单击 LIKE。
◦要返回不包含在下一步骤中指定的字符串的行,单击 NOT LIKE。
2.在模式字段中输入字符串。可以将通配符(% 和 _)直接输入到模式字段中,或使用模式字段下面的选项来选择您要查找的匹配类型。收起
互联网服务 · 2011-02-24
浏览961
zss0109211zss0109211数据库管理员null
顶楼上的db2 "create table biz.wac \( \cnstnt_name varchar(20),\code CHARACTER(15) \)"db2 "insert into biz.wac values('LAST_RULE_UPDATE','AG _OEM') "db2 "insert into biz.wac values('LAST_RULE_UPDATE','AG_OEM') "[db2inst1@localhost ~]$ db2 "select code...显示全部
顶楼上的
db2 "create table biz.wac \
( \
cnstnt_name varchar(20),\
code CHARACTER(15) \
)"

db2 "insert into biz.wac values('LAST_RULE_UPDATE','AG _OEM') "
db2 "insert into biz.wac values('LAST_RULE_UPDATE','AG_OEM') "


[db2inst1@localhost ~]$ db2 "select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG?_OEM%' "

CODE           
---------------

  0 record(s) selected.

[db2inst1@localhost ~]$ db2 "select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG%_OEM%' "

CODE           
---------------
AG _OEM        
AG_OEM         

  2 record(s) selected.

[db2inst1@localhost ~]$ db2 "select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG__OEM%' "

CODE           
---------------
AG _OEM


[db2inst1@localhost ~]$ db2 "select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG?OEM%' "
CODE           
---------------
  0 record(s) selected.收起
互联网服务 · 2011-02-24
浏览971
wangdehaowangdehao数据库管理员IBM
db2 select code from  ebiz1.web_appl_cnstnt where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG%_OEM%'CODE---------------AG  _OEMAG_OEM---------------这样很明显说明code后面是有特殊字符或者空格等,显示全部
db2 select code from  ebiz1.web_appl_cnstnt where cnstnt_name = 'LAST_RULE_UPDATE' and code like 'AG%_OEM%'

CODE
---------------
AG  _OEM
AG_OEM
---------------
这样很明显说明code后面是有特殊字符或者空格等,收起
软件开发 · 2011-02-23
浏览971
tvrciutvrciu软件开发工程师文思海辉
windows上db2ce上跑的 server 在hp-ux 上显示全部
windows上db2ce上跑的 server 在hp-ux 上收起
互联网服务 · 2011-02-23
浏览947
tvrciutvrciu软件开发工程师文思海辉
describe table biz.wac                                数据类型                  ...显示全部
describe table biz.wac
                                数据类型                      列
列名                             模式       数据类型名称      长     小数位      NULL
------------------------------- --------- ------------------- ---------- ----- ------
CNSTNT_NAME                     SYSIBM    VARCHAR                     30     0 是   
CODE                            SYSIBM    CHARACTER                   15     0 是   
  2 条记录已选择。

------------------------------ 输入的命令 ------------------------------
select * from biz.wac;
select code from biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM       ';
select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM';
------------------------------------------------------------------------------
select * from biz.wac
CNSTNT_NAME                    CODE           
------------------------------ ---------------
LAST_RULE_UPDATE               AG  _OEM      
LAST_RULE_UPDATE               AG _OEM        
  2 条记录已选择。

select code from biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM       '
CODE           
---------------
AG  _OEM      
  1 条记录已选择。

select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM'
CODE           
---------------
AG  _OEM      
  1 条记录已选择。收起
互联网服务 · 2011-02-23
浏览1109
回复 9# tvrciu     db2通配符是“_”,oracle是"?"    上面的sql,验证过没有问题!显示全部
回复 9# tvrciu


    db2通配符是“_”,oracle是"?"

    上面的sql,验证过没有问题!收起
2011-02-23
浏览1118
tvrciutvrciu软件开发工程师文思海辉
单位的配符不是  '_'吗?难道是问号?显示全部
单位的配符不是  '_'吗?难道是问号?收起
互联网服务 · 2011-02-23
浏览1128
limin19821limin19821系统工程师乐酷天
不是已经ok的吗?单字符的通配符不是'?',而是'_'lemonhat 发表于 2011-2-23 17:17 晕,被误导了,那如何解释db2 select code from biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM       'CODE--------------- &nb...显示全部
不是已经ok的吗?

单字符的通配符不是'?',而是'_'
lemonhat 发表于 2011-2-23 17:17


晕,被误导了,
那如何解释
db2 select code from biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM       '

CODE
---------------

  0 条记录已选择。


db2 select code from  biz.wac where cnstnt_name = 'LAST_RULE_UPDATE' and code = 'AG  _OEM'

CODE
---------------

  0 条记录已选择。收起
IT分销/经销 · 2011-02-23
浏览1136

提问者

limin19821
系统工程师乐酷天
擅长领域: 数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-02-23
  • 关注会员:1 人
  • 问题浏览:15643
  • 最近回答:2011-02-24
  • X社区推广