在5.2版本中如果使用sql建表並制定字段屬性為ccsid 65535,是可以使用中文的模糊查詢的但如果使用dds建表,利用field level keyword來制定字段屬性為ccsid
(65535),則無法使用中文的模糊查詢,原因是0e/0f控制碼也被當作普通字元使用。
例如r test
--name --a(20)-- ccsid(65535)
建立pf檔案qgpl/test
insert into qgpl/test values('中華人民共和國')
使用query進行模糊查詢
select * from qgpl/test where name like '中%『
系統返回0行紀錄
如果要實現對65535欄位的模糊查詢,必須修改query的寫法:
select * from qgpl/test where hex(name) like subst(hex('中'),1,3)||'%'
返回的結果為
--------中華人民共和國
返回結果正確。
這裡充分考慮了在單位元組環境下對簡體中文的處理過程,即把乙個雙位元組字元(加上0e/0f控制碼)當作4個位元組來處理,而這些位元組包含的資料是無法在單位元組環境下正確解析的。所以,必須使用16進製制的方式來處理。
如果使用者要檢索的是「中華「,則檢索的條件必須寫成:
select * from qgpl/test where hex(name) like subst(hex('中'),1,5)||'%'
因為0e/0f只出現在雙位元組字串的開頭和結尾,所以兩個漢字需要檢索的字元個數是5個。
對list進行多欄位排序
public class multicompare implements comparator 如果多個欄位的排序方向不全一致,可用此方式,格式固定為 field1 1 field2 1 public multicompare string.fields 重寫compare方法 override p...
對Sql Server表字段進行修改
通用式 alter table 表名 add 欄位名 字段屬性 default 預設值 default 是可選引數 增加字段 alter table 表名 add 欄位名 smallint default 0 增加數字字段,整型,預設值為0 alter table 表名 add 欄位名 int de...
根據value欄位對map進行排序
一般來說,我們通常都是通過map中的key欄位進行排序,步驟如下 treemapmap new treemap new comparator 直接新增比較器 public int compare string o1,string o2 但是卻沒有直接的方法能夠進行value排序 1.提取檢視 2.變...