当前位置: 代码迷 >> Oracle开发 >> 请教怎么把一个数组字段赋值入查询语句
  详细解决方案

请教怎么把一个数组字段赋值入查询语句

热度:59   发布时间:2016-04-24 07:21:55.0
请问如何把一个数组字段赋值入查询语句?
现在有个数组
String[] c = {"延庆县","怀柔区","密云县","昌平区","顺义区","平谷区","门头沟区","北京市","通州区","虎山区","大兴区"};

利用for循环 执行了11次循环 完成下面的一句SQL:

select c[i] as country,(select count(*) from aa where area = c[i]) as num from dual;


这样执行了11次循环,就开关了11次数据库
我现在想执行1句SQL完成这个工作
只开关1次数据库
主要是原来的方法运行效率太低了,想优化下SQL语句自己还不会...

想要得到SQL查询结果是这样的
country num
延庆县 11
怀柔区 15
密云县 25
....





------解决方案--------------------
SQL code
select distinct(t.area) ,(select count(1) as num from aa s where t.area=s.area) from aa t
------解决方案--------------------
C# code
string oraclesql;            string sql = "select country,count(*) num from aa where area in({0})";            StringBuilder sb = new StringBuilder();            string[] c = { "延庆县", "怀柔区", "密云县", "昌平区", "顺义区", "平谷区", "门头沟区", "北京市", "通州区", "虎山区", "大兴区" };            foreach (string s in c)            {                sb.Append(string.Format("'{0}',", s));            }            oraclesql = string.Format(sql, sb.ToString().TrimEnd(','));            //用oraclesql在数据库中执行
  相关解决方案