将变量与不同数据类型的多列进行比较?

时间:2021-02-26 12:48:22

标签: sql sql-server

我正在尝试在 @Search 列和 INT 列中查找传递给 NVARCHAR 的搜索词。

我过去曾搜索过类似于下面的多个列,但从未需要与不同的列类型进行比较。

@Search NVARCHAR(1000)

SELECT
  [Stuff]
FROM 
  [Tables]
WHERE
  [IDColumn] = ISNULL(@Search, [IDColumn])
OR
  [TextColumn] LIKE '%' + TRIM(@Search) + '%'

如何针对不同数据类型的多列检查传入的变量?

1 个答案:

答案 0 :(得分:2)

您需要转换这些值。如果是字符,我建议try_convert()

WHERE IDColumn = TRY_CONVERT(INT, @Search) OR
      TextColumn LIKE CONCAT('%', TRIM(@Search), '%')