db2的char类型末尾都会以空格填充

查询姓“刘”且全名为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类型末尾都会以空格填充,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。