我一直在为这个希望这是可能的
declare @locationType varchar(50);
declare @SearchTerm NVARCHAR(100);
SELECT column1, column2
FROM whatever
WHERE
CASE @locationType
WHEN 'location' THEN account_location LIKE @SearchTerm
WHEN 'area' THEN Area LIKE @SearchTerm
WHEN 'division' THEN xxx_location_division LIKE @SearchTerm
END
我从另一个相关帖子中复制了代码 here .
我收到错误:
Incorrect syntax near the keyword 'LIKE'.
最佳答案
declare @locationType varchar(50);
declare @SearchTerm NVARCHAR(100);
SELECT column1, column2
FROM whatever
WHERE
(@locationType = 'location' AND account_location LIKE @SearchTerm)
OR
(@locationType = 'area' AND Area LIKE @SearchTerm)
OR
(@locationType = 'division' AND xxx_location_division LIKE @SearchTerm)
确保
@SearchTerm
以 %
开头/结尾-> 或使用 '%' + @SearchTerm + '%'
.更多信息 LIKE operator .
- - 更新 - -
SELECT column1, column2
FROM whatever
WHERE
(
CASE @locationType
WHEN 'location' THEN account_location
WHEN 'area' THEN Area
WHEN 'division' THEN xxx_location_division
END
) LIKE @SearchTerm
关于where 子句中的 SQL Case 和 LIKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8294852/