set @RoleQuery='AND (CardDetails.UserId in
(SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='''+@PK_Shipper+'''))'如果@PK_Shipper是nvarchar类型,语句没问题
如果@PK_Shipper是int类型的话就会报错
在将 varchar 值 'AND (CardDetails.UserId in (SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='' 转换成数据类型 int 时失败。
请问如果是INT的话该怎么写
(SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='''+@PK_Shipper+'''))'如果@PK_Shipper是nvarchar类型,语句没问题
如果@PK_Shipper是int类型的话就会报错
在将 varchar 值 'AND (CardDetails.UserId in (SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='' 转换成数据类型 int 时失败。
请问如果是INT的话该怎么写
(SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='''+rtrim(@PK_Shipper)+'''))'
我是菜鸟
要将INT类型的变量 换成字符型拼接
改成这个试试
set @RoleQuery='AND (CardDetails.UserId in
(SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='''+ltrim(@PK_Shipper)+'''))'
啊!!:(
(SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper='''+@PK_Shipper+'''))')
--这个是不用变量的方法
declare @RoleQuery nvarchar
set @RoleQuery='AND (CardDetails.UserId in
(SELECT DISTINCT UserId FROM DealerTypeInfo WHERE PK_Shipper=''+@PK_Shipper+''))'