求字符串拼接方法

瘦马 2014-05-20 01:15:23
有一字符串如

string a = "'1','2','3','4','5','6','7','8'……";//字符串的长度是变化的

如何拼接成这样的sql语句
with t as (
select '1' as sfz from dual union all
select '2' from dual union all
select '3' from dual union all
........
select '8' from dual
)
...全文
330 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wg5945 2014-05-20
  • 打赏
  • 举报
回复

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));

瘦马 2014-05-20
  • 打赏
  • 举报
回复
再求助,弄不好
exception92 2014-05-20
  • 打赏
  • 举报
回复
把 4楼的foreach 改成 for循环,判断i==0 的时候追加你的 as sfz 判断i等于最后一个的时候不追加union all.
瘦马 2014-05-20
  • 打赏
  • 举报
回复
第一个应该是 as sfz 最后一个没有union all
蝶恋花雨 2014-05-20
  • 打赏
  • 举报
回复
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 )
wg5945 2014-05-20
  • 打赏
  • 举报
回复
类似于

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 + ")";
这种把~~
欢乐的小猪 2014-05-20
  • 打赏
  • 举报
回复
string.format
ArmStronger 2014-05-20
  • 打赏
  • 举报
回复
拆分
string[] items= a.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
然后stringbuilder拼接就好了

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧