像参数一样使用不正确
问题描述:
此脚本应该只挑选砖行='http://www.bol.com/something' 行但它返回几乎所有30行,即使其他文本它像参数一样使用不正确
DECLARE @urlpart nvarchar
set @urlpart='bol.com'
SET @urlpart = '%'[email protected] + '%'
SELECT * FROM Brick
WHERE BrickUrl like @urlpart
写入而不参数是这样的:
SELECT * FROM brick
WHERE BrickUrl like '%bol.com%'
返回正确地含有bol.com的6行。
我找不出原因是什么,或者我做错了什么,你看到了吗?
答
试试这个:
DECLARE @urlpart nvarchar
set @urlpart='bol.com'
SET @urlpart = '%'[email protected] + '%'
select @urlpart
结果:
(No column name)
%
,然后你应该试试这个,而不是
DECLARE @urlpart nvarchar(128)
set @urlpart='bol.com'
SET @urlpart = '%'[email protected] + '%'
select @urlpart
结果;
(No column name)
%bol.com%
如果不指定的nvarchar
大小,你会在两种情况下获得尺寸1.
砖拼写不同(乐砖)。这只是一个错字吗? –
如果这些是'NVARCHAR'字符串,则应该使用'N''前缀:'set @urlpart = N'bol.com'/ SET @urlpart = N'%'+ @urlpart + N'%'' –