我正在尝试在 @Search
列和 INT
列中查找传递给 NVARCHAR
的搜索词。
我过去曾搜索过类似于下面的多个列,但从未需要与不同的列类型进行比较。
@Search NVARCHAR(1000)
SELECT
[Stuff]
FROM
[Tables]
WHERE
[IDColumn] = ISNULL(@Search, [IDColumn])
OR
[TextColumn] LIKE '%' + TRIM(@Search) + '%'
如何针对不同数据类型的多列检查传入的变量?
答案 0 :(得分:2)
您需要转换这些值。如果是字符,我建议try_convert()
:
WHERE IDColumn = TRY_CONVERT(INT, @Search) OR
TextColumn LIKE CONCAT('%', TRIM(@Search), '%')