SQL in查询字段为Guid拼接处理办法

场景一:在我们写SQL脚本执行普通的Id 为Int,Long 类型查询为 譬如: select *from Table where id in (1,2,3);

场景二:SQL in 查询,当查询字段为Guid,或字符串类型时候,需要对In帅选条件进行处理,譬如:select *from Table where GuidID in (‘89e36dd0-4e36-488e-8159-2c56251d7284‘,‘89767f6f-b06b-4081-b6ad-af6b6cf31d64‘)

可以通过,string.join 进行转换处理。

方法1:strchgPositionTemplateRole = "‘" + string.Join("‘,‘", chgPositionTemplateRole) + "‘";
方法2:string.Join(",", PagePositionTemplateReponse.Select(r => "‘" + r.PositionTemplateID + "‘"))

两者效果一样都可实现;

场景三:针对情况,string.join 处理方式,in 条件字符串有可能超过 SQL varchar 设定默认长度

办法一、字符类型改成text ;

办法二、先对SQL语句进行刷选,在用Linq  Contain,Any 等刷选

原文地址:https://www.cnblogs.com/101Love/p/10832326.html

时间: 2024-12-12 17:58:40

SQL in查询字段为Guid拼接处理办法的相关文章

cast()、decimal(M,D) --SQL对查询字段保留小数位操作

参考:http://database.51cto.com/art/201005/201651.htm http://www.lai18.com/content/1693593.html 直接上例子,以下是对字段cost除以1000,保留两位小数的处理 cast(SUM(A.costs)/1000 AS decimal(32,2)) cast()函数是一个转换函数,参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型. 1)将字符串‘123’转换为int整型: select CAST('1

树形结构表查询,只用一条SQL语句查询所有父级ID解决办法

在树形结构表查询中用得最多的就是查询指定分类的所有下级分类,这个性能比较好的解决方案是为分类加一个编码(路径)把父级的ID都拼接上,最后通过like 'x%'就能把所有下级分类select出来.但是有时也会遇到反过来,找出指定分类的所有上级分类,这个情况尤其在分销或类传销的系统中最常见,因为他们分成都是上级分成,所以要找出指定人的上级集合. 下面分享一下我的解决方案(只用一条SQL语句.不用存储过程.函数): 有下面所在的新闻分类表. ParentID为父级的ID. 下面要找出ID为52的所有上

sql server查找字段中含有汉字

/***************************************************************%%%% 描述: SQL语句查询字段中是否包含汉字%%****************************************************************%% 编写:[email protected] 2007-12-17%% 说明:如有转载请注明来处http://blog.sina.com.cn/houkuan***************

查询某个分组中多行字段值的拼接字串的方法--access

查询某个分组中多行字段值的拼接字串的方法 先收藏,后面再研究 access的SQL语法中没有自定义函数,也不能象SQL Server中一样用变量.游标.子查询等方法来灵活处理查询语句. 但是,在Access环境中,透过模块中的过程,可利用功能强大的VB语言,生成复杂需求的查询语句. 下面是本人今天在Access版块中的一个回复,以此例 access的SQL语法中没有自定义函数,也不能象SQL Server中一样用变量.游标.子查询等方法来灵活处理查询语句. 但是,在Access环境中,透过模块中

sql语句查询同一表内多字段同时重复的记录 sql数据库重复记录删除

分享下用sql语句删除数据库中重复记录的方法.比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来select p1.* from persons p1,persons p2 where p1.id<>p2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address可以实现上述效果.几个删除重复记录的SQL语句 1.用rowid方法2.用gr

sql server 查询数据库所有的表名+字段

原文:sql server 查询数据库所有的表名+字段 SELECT * FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Account' SELECT    (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空       a.colorder as 字段序号,       a.name as 字段名,       (case when COLUMNPROPER

Sql动态查询拼接字符串的优化

Sql动态查询拼接字符串的优化 最原始的 直接写:string sql="select * from TestTables where 1=1";... 这样的代码效率很低的,这样影响了数据库的索引引用如下所示:private void TestOneMethod()        {             string querySql = "select * from TestTables where 1=1";            if (hasOneCo

使用sql syscolumns 查询表字段 并且拼接代码

我们写代码时候避免不了添加数据.更新数据,但是如果一张表字段太多,要写的代码量就会加大,比如用StringBuilder拼接Insert SQL语句: 对于这种没有技术含量的代码可以通过代码生成器生成,也可自己根据表字段用SQL 生成: 1.下面这段代码是查找一张表中所有字段名称 select Name From syscolumns where id=OBJECT_ID('表名') 2.在1的基础上我们就可任意拼接我们的返回结果,比如我们需要将所有字段用逗号拼接(当然可以通过sql递归实现,但

SQL 将一条记录中多个字段的值拼接为一个字段 &amp;&amp; 将多行数据合并成一行,并且拼接CONVERT() 、for xml path的使用

接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的时间段,商品价格) 一.将一条记录中多个字段的值拼接为一个字段 现要求将两个时间段合并为一个字段,应该如何做呢? 先来看下理想的结果: 查询出的时间段合并到一起了: 代码如下,将查询的字段用+'你想要的符号' + 拼接即可 select item,act_id,loc_id,convert(varchar(100),start_date,20)+ '-' +convert(varchar