在将 varchar 值 '2,7' 转换成数据类型 int 时失败

消息 245,级别 16,状态 1,第 1 行
在将 varchar 值 ‘2,7‘ 转换成数据类型 int 时失败。

原sql

select  UserName from s_User  where Id in ( select UndertakerList from ZW_HandlerSend where HsID=7 )

改成

select  UserName from s_User  where  charindex(rtrim(Id), (select top 1 UndertakerList from ZW_HandlerSend where HsID=7 ))>0

第2种写法

select  UserName from s_User
where charindex(‘,‘+convert(varchar,id)+‘,‘,‘,‘+‘2,7‘+‘,‘)>0

参考:

http://blog.csdn.net/hongsejiaozhu/article/details/4978737

--------------------------

sql将多行数据转成一行数据

TabA ( bids varchar(32)) 数据 1条

‘2,7‘
TabB  ( id int, name varchar(32)) 数据2条

2   lvhua

7   tom
现在,我想查出一行一列数据

‘lvhua,admin‘

第1种写法:

for xml path()

参考:http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

第2种写法:

create function [dbo].[fn_getHSUndertakerList222](@HsID int)

returns varchar(1024)

as

begin

declare @buildSQL nvarchar(1024)

declare @str varchar(1024)

set @str=‘‘

select @str = @str + ‘,‘ + UserName from s_User

where (  charindex(rtrim(Id), (select top 1 UndertakerList from ZW_HandlerSend where [email protected] ))>0 )

set @str = substring(@str,2,len(@str))

return @str end

select dbo.[fn_getHSUndertakerList222](7)

在将 varchar 值 '2,7' 转换成数据类型 int 时失败

时间: 2024-08-01 22:28:57

在将 varchar 值 '2,7' 转换成数据类型 int 时失败的相关文章

佩特来项目经验小集合(2)___组合查询存储过程,报错 "varchar JBID='' 转换成数据类型 int 时失败"

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所看到的: 经百度:字符串变量和整型变量连接不能用+连接. 于是我採用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就攻克了. 正确代码例如以下所看到的: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH

在将 varchar 值 转换成数据类型 int 时失败。

写了个存储过程是这样的 create proc [dbo].[GetHotKeys](  @top int,  @where nvarchar(1000) )as declare @sqlStr nvarchar(1000) if @top<>''    set @sqlStr='select top '+cast(@top as varchar(10))+' * from  hotkeys '[email protected] else    set  @sqlStr='select * f

在将 varchar 值 &#39;1,2,3,4,5,6,7,8&#39; 转换成数据类型 int 时失败。

alter PROCEDURE PrTradingDelete @id VARCHAR(4000) AS BEGIN UPDATE dbo.Trading SET IsDel=1 WHERE id in(@id) END GO 执行上面这个存储过程会异常.提示 :在将 varchar 值 '1,2,3,4,5,6,7,8' 转换成数据类型 int 时失败. 将存储过程更改为: alter PROCEDURE PrTradingDelete @id VARCHAR(4000) AS BEGIN U

sql in(1,2,3)参数化查询,错误在将 varchar 值 &#39;1,2,3,4&#39; 转换成数据类型 int 时失败

解决办法 string userIds = "1,2,3,4";using (SqlConnection conn = new SqlConnection(connectionString)){ conn.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = conn; comm.CommandText = string.Format("select * from Users(nolock) where U

佩特来项目经验小集合(2)___组合查询存储过程,报错 &quot;varchar JBID=&#39;&#39; 转换成数据类型 int 时失败&quot;

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所示: 经百度:字符串变量和整型变量连接不能用+连接.于是我采用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就解决了.正确代码如下所示: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH varchar(

sql 在将 nvarchar 值 转换成数据类型 int 时失败。

假设有存储过程:proc_test2 create proc proc_test2 @Id int begin as declare @sql varchar(max) @sql = 'select * from test2 where 1=1' if @Id <> 0 set @sql += ' and Id = ' +@Id exec (@sql) end 存储过程需要的参数是int类型,按道理直接传值([email protected])是没有问题的,但是在执行存储过程的时候,却弹出 “

sqlserver 在将 nvarchar 值 &#39;XXX&#39; 转换成数据类型 int 时失败

最近做oracle和sqlserver数据库兼容,感觉sqlserver真心没oracle好用,存储过程竟然只能返回int类型,疯了 疯了 存储过程的output及return的区别 sql取整 ceiling() RETURN从查询或过程中无条件退出.RETURN 即时且完全,可在任何时候用于从过程.批处理或语句块中退出.不执行位于 RETURN 之后的语句.返回的整型值.存储过程可以给调用过程或应用程序返回整型值 除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败. 当

在Sql中将 varchar 值 &#39;1,2,3,4,5,6&#39; 转换成数据类型 int

--问题:将aa转换为Int类型失败 string aa="3,5,11,56,88,45,23"; select * from ERPBuMen where ID in(aa) ; --方法select * from ERPBuMen where charindex(','+ltrim(ID)+',',','+'3,5,11,56,88,45,23'+',')>0 ltrim(rtrim(m.cust_id)) 去掉cust_id字段的左右空格 CHARINDEX 返回字符串中

查询复杂对象用respsbody转换成json串时,mybatis的延迟加载报错的解决方法

在查询数据时,如果你查询的是复杂的对象需要通过respsbody转换成json串时,mybatis用的延迟加载会报以下错误: 解决方法:第一步在RequestMapping(参数中加入 produces =  "application/json")表示将功能处理方法将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头"Accept:application/json"时即可匹配.第二步:在实体类中前面加上注解@JsonInclude(JsonIn