where 1=1 and Dictionary[key1]=Dictionary[value1] and Dictionary[key2]=Dictionary[value3]。。。。

/// <summary>
/// 传入一个字段返回where条件
/// </summary>
/// <param name="where">字段</param>
/// <param name="tableAlias">可以为空</param>
/// <returns></returns>
protected string GetWhere(Dictionary<string, object> where, string tableAlias)
{
string sql = "";
string aliasName = string.Empty;
if (!string.IsNullOrEmpty(tableAlias))
{
aliasName = tableAlias + ".";
}
if (where == null)
{
return sql;
}
string joinList = string.Empty;
foreach (var item in where)
{
if (string.IsNullOrEmpty(sql))
{
sql += " where ";
}
else if (!string.IsNullOrEmpty(sql.Replace("where", "").Trim()))
{
sql += " and ";
}
string speCode = "┝┝┞┞├├┼┽┾┿╀╂┣─┐┎";
if (item.Value == null)
{
sql += "nvl(" + aliasName + item.Key + ",'"+speCode+"') = '"+speCode+"'";
}
else if (string.IsNullOrEmpty(item.Value.ToString()))
{
sql += "nvl(" + aliasName + item.Key + ",'"+speCode+"') = '"+speCode+"'";
}
else if (item.Value is List<string>)
{
List<string> valueList = (List<string>)item.Value;
string valueStr = "";
if (valueList.Count > 1)
{
//sql += " in (" + valueStr + ") ";
int strIndex = 0;
valueList = valueList.Distinct().ToList();
foreach (var str in valueList)
{
if (strIndex > 0)
{
valueStr += " union all ";
}
valueStr += " select '" + str + "' as TEMP" + item.Key + " from dual ";
strIndex++;
}
joinList += " inner join (" + valueStr + ") " + item.Key + "TABLE ON " + aliasName + item.Key +
"=" + item.Key + "TABLE.TEMP" + item.Key;
if (sql.EndsWith("and "))
{
sql = sql.Substring(0, sql.Length - 4);
}
}
else
{
foreach (var str in valueList)
{
valueStr += "'" + str + "',";
}
valueStr = valueStr.TrimEnd(',');
sql += aliasName + item.Key;
sql += " = " + valueStr + " ";
}
}
else if (item.Value is List<int>)
{
List<int> valueList = (List<int>)item.Value;
string valueStr = "";
foreach (var str in valueList)
{
valueStr += str + ",";
}
valueStr = valueStr.TrimEnd(',');
sql += aliasName + item.Key;
if (valueList.Count > 1)
{
sql += " in (" + valueStr + ") ";
}
else
{
sql += " = " + valueStr + " ";
}
}
else if (item.Value is List<decimal>)
{
List<decimal> valueList = (List<decimal>)item.Value;
string valueStr = "";
foreach (var str in valueList)
{
valueStr += str + ",";
}
valueStr = valueStr.TrimEnd(',');
sql += aliasName + item.Key;
if (valueList.Count > 1)
{
sql += " in (" + valueStr + ") ";
}
else
{
sql += " = " + valueStr + " ";
}
}
else if (item.Value is string)
{
sql += aliasName + item.Key + " = '" + item.Value.ToString() + "'";
}
else
{
sql += aliasName + item.Key + " = " + item.Value.ToString();
}
}
if (string.IsNullOrEmpty(sql.Replace("where", "").Trim()))
{
sql += " 1=1 ";
}

//选择是否需要比如分区控制之类的
//if (!where.ContainsKey("F_SITE_ID"))
//{
//sql += CommomBus.GetPatitionFilter(tableAlias);
//}
return joinList + " " + sql;
}

转载于:https://www.cnblogs.com/isking/p/6228777.html

C#字典转换成where条件相关推荐

  1. pandas将字典转换成dataframe,两重字典

    我有一个字典 dict_year 是这样的, 现在想把这个字典转成dataframe,用这个命令就可以 df_star = pd.DataFrame(dict_year).T 转换后得到结果如下图:

  2. 字典转换成模型属性代码笔记

    创建一个字典的Category:NSDictionary+Property - (void)getPropertyCodeFromDict {NSMutableString *codes = [NSM ...

  3. python字典进行大写转化_Python字典转换成小写?

    基本上比较一个小写版本的响应与小写版本的正确答案.在 但有几件事在你的问题中并不完全清楚: 你到底在records中存储了什么? 确认书中应使用哪个国家的名称是...在-'里? 您想将用户的响应与有效 ...

  4. python 序列化压缩成字符串_Python 将json序列化后的字符串转换成字典(推荐)

    一般而言下面的就可以完成需求了. def convertToDic(data): jsonDic=json.loads(data) return dict(jsonDic) 但实际应用中可能会出现一些 ...

  5. python将列表转换成集合_python集合变成列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 可以存储任意数据类型的集合列表里:可以存储不同的数据类型 s= print s, ...

  6. python文件写入字典格式输出_Python把对应格式的csv文件转换成字典类型存储脚本的方法...

    该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我! CSV的数据格式截图如下: readDataToDic.py源代 ...

  7. 编码字典类特征、使用sklearn的DictVectorizer方法将字典组成的列表转换成向量、详解及实战

    编码字典类特征.使用sklearn的DictVectorizer方法将字典组成的列表转换成向量.详解及实战 sklearn.feature_extraction.DictVectorizer() 把字 ...

  8. python把字符串转化为字典_python 将字符串转换成字典dict的各种方式总结

    1)利用eval可以将字典格式的字符串与字典户转 >>>mstr = '{"name":"yct","age":10}' ...

  9. python对象列表转换为字典_python实现class对象转换成json/字典的方法

    本文实例讲述了python实现class对象转换成json字典的方法.分享给大家供大家参考,具体如下: # -*- encoding: UTF-8 -*- class Student: name = ...

  10. 把SQLAlchemy查询对象转换成字典/json使用(分开)

    注:针对的是查询出来的是单条对象 多个对象的话可以使用for循环遍历查询出来的对象列表,也可以使用下面的方法 1.config.py文件 #!/usr/bin/env python #-*- codi ...

最新文章

  1. android loadlibrary 更改libPath 路径,指定路径加载.so
  2. SSM-网站后台管理系统制作(2)---SSM基本工作原理
  3. onclick如何调用含参函数_在 golang 中如何调用私有函数(绑定隐藏的标识符)
  4. ImportError: cannot import name HTTPSHandler
  5. springmvcdate类型接收不到_无线电小课堂:如何在市区环境有效接收短波信号,选什么天线?...
  6. webpack编译时No PostCSS Config的解决方法
  7. python保存图片_python保存网络图片问题
  8. cas单点登陆系统-casServer搭建
  9. dense sift matlab,一个 Dense SIFT 算法的 matlab 实现 | 学步园
  10. java 死锁_java死锁分析
  11. 力扣——315. 计算右侧小于当前元素的个数
  12. HTML示例04---文字
  13. 【重点】剑指offer——面试题36:数组中的逆序对
  14. 浙商证券计算机组成原理,中国海洋大学计算机组成原理期末模拟参考答案.doc...
  15. HTML+JS 写一个 个人博客(初学版)
  16. 21天学通JAVA-第7版 入门到精通完美高清PDFamp;光盘源代码下载
  17. 简单循迹小车实验心得_你真的了解循迹小车吗,小宇教你如何制作属于自己的循迹小车...
  18. md5 java_JAVA使用MD5加密解密
  19. C/C++:个人收支系统实现
  20. 软考高级 真题 2011年上半年 信息系统项目管理师 案例分析

热门文章

  1. Matlab中的逻辑运算与,||与|的区别
  2. Python进阶(九)常用高级函数Counter、defaultdict、nametuple、map、reduce、filter、groupby
  3. 约束最优化方法 (三) 外部罚函数法
  4. 你不可不知的Java引用类型之——ReferenceQueue源码详解
  5. 使用docker部署.net core应用
  6. OAuth2.0学习(1-12)开源的OAuth2.0项目和比较
  7. ionic platform add ios, Error:spawn EACCES
  8. BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式( 二分答案 + 后缀数组 )
  9. OSG 初始化为非全屏窗口
  10. XML To Linq 读取Sharepoint列表中的附件列信息