[SQL]匹配包含的测试
Posted 断弦有谁知
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[SQL]匹配包含的测试相关的知识,希望对你有一定的参考价值。
数据库:IBMInformix Dynamic Server Version 11.50.FC6
关于包含的测试
select unique
select unique
select unique
select unique
select uniquePolicyNo[2]
select unique
matches和 = 号 居然不一样,可能在其他数据库是一样的吧,
like居然和matches不一样,这个诡异了,,,虽然我再informix数据库下一直用的matches。
查了下网上资料
like 使用%代表任何字符
like 使用?代表单个字符
matches使用*代表任何字符
matches使用_代表单个字符
like的语法是一个SQL标准。
matches好象是informix自己的标准,说白了就是对matches支持会更好
20160623
====================================================================
SELECT
reason,
category,
COUNT(*),
SUM(commdata)
FROM
tmpkk
GROUP BY
1,2
结果:
2016年劳动竞赛4月[分摊]找单摊(全车退保批单扣回) 9 62 -3986.01
---------------------------------------------------
SELECT
COUNT(*),
SUM(commdata)
FROM
tmpkk
WHERE
statdate >= '20160501'
AND statdate <= '20160531'
AND reason matches '*2016年劳动竞赛4月[分摊]找单摊(全车退保批单扣回)*' ;
结果: (COUNT(*)) (SUM)
0 (NULL) -----------看吧。你想要的 结果没查到。
-----------------------------------------------------------------
SELECT
COUNT(*),
SUM(commdata)
FROM
tmpkk
WHERE
statdate >= '20160501'
AND statdate <= '20160531'
AND reason matches '*找单摊*' ;
结果:
(COUNT(*)) (SUM)
62 -3986.01
=================================================================
== 改掉tmpkk中的说明后,
=================================================================
SELECT
reason,
category,
COUNT(*),
SUM(commdata)
FROM
tmpkk
GROUP BY
1,2
结果:
2016年劳动竞赛4月(分摊)找单摊(全车退保批单扣回) 9 62 -3986.01
-------------------------------------------
SELECT
COUNT(*),
SUM(commdata)
FROM
tmpkk
WHERE
statdate >= '20160501'
AND statdate <= '20160531'
AND reason matches '*2016年劳动竞赛4月(分摊)找单摊(全车退保批单扣回)*' ;
结果:
(COUNT(*)) (SUM)
62 -3986.01 ---------- 这样就没问题了。。。
---------------------------------------------------------
SELECT
COUNT(*),
SUM(commdata)
FROM tmpkk
WHERE statdate >= '20160501' AND statdate <= '20160531'
AND reason matches '*找单摊*' ;
结果:
(COUNT(*)) (SUM)
62 -3986.01
==================================================================
==================================================================
综上结论:
informix数据库中,说明中尽量不使用[],而用英文状态下的()代替!!!
==================================================================
以上是关于[SQL]匹配包含的测试的主要内容,如果未能解决你的问题,请参考以下文章