拆分
string[] items= a.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
然后stringbuilder拼接就好了

解决方案 »

  1.   

    类似于
    string str = "'1','2','3','4','5','6','7','8'";
    string a = string.Join(" from dual union all ", str.Split(',').Select(x => string.Format("select {0}", x)));
    string sql = "with t as ( " + a + ")";
    这种把~~
      

  2.   

    string a = "'1','2','3','4','5','6','7','8'";
       StringBuilder sb = new StringBuilder();
       sb.Append(@"  with t as (");
       foreach (var item in a.Split(','))
       {
    sb.Append(@"select "+item+" from dual union all ");
       }
       sb.Append(")");
       Response.Write(sb.ToString());
    输出:
    with t as (select '1' from dual union all select '2' from dual union all select '3' from dual union all select '4' from dual union all select '5' from dual union all select '6' from dual union all select '7' from dual union all select '8' from dual union all ) 
     
     
      

  3.   

    第一个应该是 as sfz
    最后一个没有union all
      

  4.   

    把  4楼的foreach 改成 for循环,判断i==0 的时候追加你的 as sfz   判断i等于最后一个的时候不追加union all.
      

  5.   


    string str = "'1','2','3','4','5','6','7','8'";
    var array = str.Split(',').Select(x => string.Format("select {0}", x)).ToArray();
    string sql = string.Format("with t as ( {0} as sfz from dual union all {1} from dual)",array[0],string.Join(" from dual union all ", array, 1, array.Length - 1));