team470 发表于 2016-11-15 08:30:57

DB2中locate用法

package com.unisure.hrss.ldjc.test;
public class Main {

    /**
   * 检查字符串是否包含某个字符串
   */
    public void checkStringContains() {

      String needle1 = "6;,9;,10;;";
      String needle2 = "7";
      String haystack = ";";

      int index1 = needle1.indexOf(haystack);
      int index2 = needle2.indexOf(haystack);

      //getSql(needle1, haystack, index1);
      System.out.println(getSql(needle1, haystack, "ldsq"));
      System.out.println(getSql(needle2, haystack, "ygsq"));
    }
      

    /**
* @param needle 待输入的字符串
* @param mode 待分隔的字符串
* @param index1 待验证的index
* @param colName 待比较的字段名称
* @return
*/
private String getSql(String needle, String mode, String colName) {
StringBuffer sql = new StringBuffer();
int index = needle.indexOf(mode);
if (index != -1){
            String[] arry = needle.split(",");
            for (int i=0;i<arry.length;i++) {
            if(i==0){
            sql.append(" and (locate('").append(arry);
            }else if(i!=0){
            sql.append(" or locate('").append(arry);
            }
            
sql.append("',").append(colName).append(")>0");
}
            
   if(arry.length>0) sql.append(") ");
       return sql.toString();
} else{
      sql.append(" and ").append(colName).append(" like '%").append(needle).append(";%'");
   }
   return sql.toString();
}

    /**
   * Starts the program
   *
   * @param args the command line arguments
   */
    public static void main(String[] args) {
      new Main().checkStringContains();
    }
}
页: [1]
查看完整版本: DB2中locate用法