此脚本应仅选择brickurl ='http://www.bol.com/something'的行 但它几乎返回所有30行,即使其中包含其他文本
DECLARE @urlpart nvarchar
set @urlpart='bol.com'
SET @urlpart = '%'+@urlpart + '%'
SELECT * FROM Brick
WHERE BrickUrl like @urlpart
没有像这样的参数写的:
SELECT * FROM brick
WHERE BrickUrl like '%bol.com%'
正确返回包含bol.com的6行。
我无法弄清楚原因是什么,或者我做错了什么,你看到了吗?
答案 0 :(得分:4)
试试这个:
DECLARE @urlpart nvarchar
set @urlpart='bol.com'
SET @urlpart = '%'+@urlpart + '%'
select @urlpart
结果:
(No column name)
%
然后你应该尝试这个
DECLARE @urlpart nvarchar(128)
set @urlpart='bol.com'
SET @urlpart = '%'+@urlpart + '%'
select @urlpart
结果;
(No column name)
%bol.com%
如果未指定nvarchar
的尺寸,您将获得尺寸1。