DB2的locate和posstr
先说一下两个函数的用法
locate(arg1,arg2,
查找arg2中第一次出现arg1的位置,指定pos,则
从arg2的pos处开始找arg1第一次出现的位置。
posstr(arg1,arg2)查看arg2在arg1中的位置
SELECT POSSTR('MYTEST-100',('TEST-'||A.COL_VC)) FROM T_TEST_ZRK A; //error
SELECT POSSTR('MYTEST-100',('TEST-' )) FROM T_TEST_ZRK A;//success
SELECT POSSTR('MYTEST-100',a.COL_VC) FROM T_TEST_ZRK A;//error
SELECT POSSTR(A.COL_VC,'2') FROM T_TEST_ZRK A;//success
select locate(('TEST-'||A.COL_VC),'MYTEST-100'),a.col_vc FROM T_TEST_ZRK A;//success
select locate(('好-'||A.COL_VC),'你好-'||a.col_vc),a.col_vc FROM T_TEST_ZRK A;//success
从上面几个语句,很容易看出来。
posstr中arg2是只能是固定的str,不能使用字段代替,arg1就可以动态生成
locate中arg1和arg2都可以动态生成。