DB2中判断一个字段含有中文字符串的条件如何写

DB2中判断一个字段含有中文字符串的条件怎么写?
如题,请赐教!谢谢!

------解决方案--------------------
写个函数,一个一个字符去循环判断
------解决方案--------------------
我用的版本的db2是没有的
就是去循环字符串,然后判断是不是中文
------解决方案--------------------
不太确认你的具体使用场景,
能把oracle的函数说出来吗?
我可以帮你查查DB2里面有无对应
探讨
引用:
写个函数,一个一个字符去循环判断


DB2中没有直接可用的函数吗?oracle都可以直接用函数解决

看来用到DB2很郁闷,这个函数该怎么写呢?

------解决方案--------------------
这个问题你可以利用DB2中的REPLACE函数来做,把你对象中文字符串替换为空,然后查看前后的字符长度差距,如果是0则没有,不是0则包含有。
------解决方案--------------------
字符不定是什么意思?不需要定啊,只要有前后长度差距不为零,就是有这个字符啊。
------解决方案--------------------
学习了

------解决方案--------------------
这种搞法在Oracle里面也不一定严格对,跟codepage关联,而且在UTF-8环境里韩文日文片假名也跟汉字一样。

DB2里面可以用下面的方法达到类似效果,数据库编码为UTF-8:
db2 => create table t1(c1 varchar(20))
DB20000I The SQL command completed successfully.
db2 => insert into t1 values('zgwz'),('中国文字')
DB20000I The SQL command completed successfully.
db2 => select c1 from t1

C1
--------------------
zgwz
中国文字

2 record(s) selected.

db2 => select c1 from t1 where length(c1) <> length(c1, CODEUNITS32)

C1
--------------------
中国文字

1 record(s) selected.

db2 =>


探讨

引用:
不太确认你的具体使用场景,
能把oracle的函数说出来吗?
我可以帮你查查DB2里面有无对应

引用:
引用:
写个函数,一个一个字符去循环判断


DB2中没有直接可用的函数吗?oracle都可以直接用函数解决

看来用到DB2很郁闷,这个函数该怎么写呢?

……

------解决方案--------------------
locate(arg1,arg2)

用这个函数去判断,arg1是否存在于arg2,如果存在返回位置,没有返回0,你只需要判断结果是不是大于等于1就可以了。结贴给分。
------解决方案--------------------
我觉得楼主应该问DB2有没有按照字节计算字符串长度的函数
------解决方案--------------------
顺便帮你搜到了
CHARACTER_LENGTH()
然后跟oracle一样的用法应该就可以了吧

------解决方案--------------------
比较复杂的问题。
------解决方案--------------------
select c1 from t1 where length(c1) <> length(c1, CODEUNITS32);

11楼正解。