我已声明我的变量:
declare @search as nvarchar
set @search = 'road'
然后我有效地希望在我的Where子句中有这个:
where
unit.BuildingName like '%@search%' or
property.Street like '%@search%' or
unit.Street like '%@search%'
显然不会起作用,因为这甚至都没有查看我声明的变量。
但你能看到我想要的东西吗?
谢谢!
答案 0 :(得分:1)
您应该像这样更改查询。
declare @search as nvarchar(500)
set @search = '%road%'
where
unit.BuildingName like @search or
property.Street like @search or
unit.Street like @search
答案 1 :(得分:0)
@search
按字面解释,而不是作为变量值。你可能想要这个:
where
unit.BuildingName like '%' + @search + '%' or
property.Street like '%' + @search + '%' or
unit.Street like '%' + @search + '%'
答案 2 :(得分:0)
如果我猜你正在使用SQL Server(基于对contains
的引用),你需要做两件事:
declare @search as nvarchar(255)
set @search = 'road';
请注意添加长度。
然后:
where unit.BuildingName like '%' + @search + '%' or
property.Street like '%' + @search + '%' or
unit.Street like '%' + @search + '%'
如果这是动态SQL的一部分,您应该将@search
作为字符串传递,而不是更改查询字符串。
您可以将逻辑简化为:
where (unit.BuildingName + property.Street + unit.Street) like '%' + @search + '%'