嗨,我有一个很好的选择,我在varchar列上使用CHARINDEX,但是当我在整数列上尝试它时,我得到以下错误;
参数数据类型int对于charindex函数的参数1无效。
下面我列出了这两个问题。
是整数中的varchar intEmployeeID。
**below returns results as aspected**
SELECT intEmployeeID
FROM [dbo].[tblEmployees]
WHERE CHARINDEX(',' + strEmail + ',', ',' + REPLACE('test@gmail.com, test2@gmail.com', ' ', '') + ',') > 0
**below I get an error if I'm trying to select on a integer column**
SELECT intEmployeeID
FROM [dbo].[tblEmployees]
WHERE CHARINDEX(',' + intEmployeeID + ',', ',' + REPLACE('1, 2', ' ', '') + ',') > 0任何帮助都是最伟大的。
发布于 2016-06-02 17:42:07
SELECT intEmployeeID
FROM [dbo].[tblEmployees]
WHERE CHARINDEX(',' + cast(intEmployeeID as nvarchar(max)) + ',', ',' + REPLACE('1, 2', ' ', '') + ',') > 0发布于 2016-06-02 17:41:56
+ cast(intEmployeeID as varchar)+ 将intEmployeeID铸造为varchar
发布于 2016-06-02 17:41:59
必须将整数显式转换为字符串,否则它会将+运算符编译为整数加法,而不是字符串连接:
CHARINDEX(',' + CONVERT(VARCHAR(10),intEmployeeID) + ',', ',' + REPLACE('1, 2', ' ', '') + ',')https://stackoverflow.com/questions/37598662
复制相似问题