CHARINDEX带整数

时间:2016-06-02 17:38:37

标签: sql charindex

嗨我有一个选择哪个适用于我在varchar列上使用CHARINDEX的地方,但是当我在整数列上尝试它时,我得到以下错误;

参数数据类型int对于charindex函数的参数1无效。

下面我列出了两个查询。

stremail是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

任何帮助都会非常棒。

3 个答案:

答案 0 :(得分:1)

+ cast(intEmployeeID as varchar)+ 

将intEmployeeID转换为varchar

答案 1 :(得分:1)

您必须将整数显式转换为字符串,否则它会将+运算符编译为整数加法而不是字符串连接

CHARINDEX(',' + CONVERT(VARCHAR(10),intEmployeeID) + ',', ',' +  REPLACE('1, 2', ' ', '') + ',')

答案 2 :(得分:1)

SELECT  intEmployeeID
FROM [dbo].[tblEmployees]
WHERE CHARINDEX(',' + cast(intEmployeeID as nvarchar(max)) + ',', ',' +  REPLACE('1, 2', ' ', '') + ',') > 0