Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL将变量声明为nvarchar。使用dec变量作为';比如';或';包含';在where子句中_Sql_Variables_Where_Sql Like_Contain - Fatal编程技术网

SQL将变量声明为nvarchar。使用dec变量作为';比如';或';包含';在where子句中

SQL将变量声明为nvarchar。使用dec变量作为';比如';或';包含';在where子句中,sql,variables,where,sql-like,contain,Sql,Variables,Where,Sql Like,Contain,我已经声明了我的变量: declare @search as nvarchar set @search = 'road' 那么我实际上想在Where子句中包含以下内容: where unit.BuildingName like '%@search%' or property.Street like '%@search%' or unit.Street like '%@search%' 显然,这不起作用,因为它甚至没有查看我声明的变量 但是你能明白我想说什么吗 谢谢 查询中的@searc

我已经声明了我的变量:

declare @search as nvarchar
set @search = 'road'
那么我实际上想在Where子句中包含以下内容:

where  

unit.BuildingName like '%@search%' or
property.Street like '%@search%' or
unit.Street like '%@search%'
显然,这不起作用,因为它甚至没有查看我声明的变量

但是你能明白我想说什么吗


谢谢

查询中的
@search
被逐字解释,而不是作为变量值。你可能想要这个:

where  

unit.BuildingName like '%' + @search + '%' or
property.Street like '%' + @search + '%' or
unit.Street like '%' + @search + '%'

如果我猜您正在使用SQL Server(基于对
包含的
的引用),您需要做两件事:

declare @search as nvarchar(255)
set @search = 'road';
注意增加了一个长度

然后:

如果这是动态SQL的一部分,那么应该将
@search
作为字符串传入,而不是对查询字符串进行搜索

您可以将逻辑简化为:

where (unit.BuildingName + property.Street + unit.Street) like '%' + @search + '%'

您应该像这样更改查询

declare @search as nvarchar(500)
set @search = '%road%'

where  
unit.BuildingName like @search or
property.Street like @search or
unit.Street like @search

用你正在使用的数据库标记你的问题。可能重复
declare @search as nvarchar(500)
set @search = '%road%'

where  
unit.BuildingName like @search or
property.Street like @search or
unit.Street like @search