查询姓“刘”且全名为2个汉字的学生的姓名:
SELECT Sname
FROM Student
WHERE Sname LIKE ‘刘__‘;
为什么没有结果呀?我把两下横线改为%后有结果出来,难道在DB2里面下横线不代表任意单个字符吗?
经过试验发现
db2的通配符“_”
只能匹配一个字节。db2情况下:
char类型, db2的char类型末尾都会以空格填充的。
如果你的sname定义为char(8), 那么‘刘xx‘在数据库里面实际上保存的是‘刘xx ‘, 后面有5个空格的。
所以你用_查询的时候需要写成‘刘_______‘, 这样才能够正确匹配的。
db2的char类型末尾都会以空格填充的。
或者可以换个思路:
select * from T_BASICPERSONALCUSTOMERS WHERE PERSONALNAME like ‘汪%英‘ and length(PERSONALNAME) = 6
这样能匹配出来 汪法英 汪去英 等数据
匹配时间时格式可以用2014-07-25 15:56:00的 以下句子可以查到数据 但是不能用2014/07/25 15:56:00 这种形式 但是db2中可能存储的形式就是2014/07/25 15:56:00 这种的。
select * from T_BASICPERSONALCUSTOMERS WHERE UPDATETIME BETWEEN ‘2014-07-25 15:56:00‘ and ‘2014-07-25 19:11:37‘
db2的char类型末尾都会以空格填充,布布扣,bubuko.com
原文:http://my.oschina.net/u/567296/blog/296048