sql 简单的查询问题 在线等
- SQL code
ALTER FUNCTION f_PMS_GetUserName( @UserID VARCHAR(100))RETURNS VARCHAR(100)ASBEGIN --定义 DECLARE @ResultVar VARCHAR(100) --初始 SET @ResultVar = '' --获取结果 SELECT @ResultVar = @ResultVar + UserName FROM dbo.Sys_User WHERE ID IN (@UserID) --返回 RETURN @ResultVarENDGO
表【Sys_User】里的【ID】是int类型
执行:
SELECT DBO.f_PMS_GetUserName('7') --没问题
执行:
SELECT DBO.f_PMS_GetUserName('7,160')
报错:
在将 varchar 值 '7,160' 转换成数据类型 int 时失败。
[解决办法]
- SQL code
ALTER FUNCTION f_PMS_GetUserName( @UserID VARCHAR(100))RETURNS VARCHAR(100)ASBEGIN --定义 DECLARE @ResultVar VARCHAR(100) --初始 SET @ResultVar = '' --获取结果 SELECT @ResultVar = @ResultVar + UserName FROM dbo.Sys_User WHERE CHARINDEX(',' + RTRIM(ID) + ',',',' + @UserID + ',') > 0 --返回 RETURN @ResultVarENDGO