当前位置:  开发笔记 > 数据库 > 正文

在SQL LIKE语句中使用变量

如何解决《在SQLLIKE语句中使用变量》经验,为你挑选了3个好方法。

我有一个sproc(MSSQL 2k5),它将为LIKE克劳斯带一个变量,如下所示:

DECLARE @SearchLetter2 char(1)
SET @SearchLetter = 't'
SET @SearchLetter2 = @SearchLetter + '%'
SELECT *
    FROM BrandNames 
    WHERE [Name] LIKE @SearchLetter2 and IsVisible = 1 
    --WHERE [Name] LIKE 't%' and IsVisible = 1 
    ORDER BY [Name]

不幸的是,当前运行的行会引发语法错误,而注释的where子句运行正常.任何人都可以帮助我让未评论的线路工作吗?



1> Andrew Browe..:

如果您使用的是存储过程:

ALTER PROCEDURE 
(
    @PartialName VARCHAR(50) = NULL
)

SELECT Name 
    FROM 
    WHERE Name LIKE '%' + @PartialName + '%'



2> Eric Sabine..:

Joel是不是已经宣布了@SearchLetter?此外,@ SearchLetter2的长度对于't%'来说还不够长.尝试更长的varchar.



3> enraged..:

正如Andrew Brower所说,但增加了修剪

ALTER PROCEDURE 
(
    @PartialName VARCHAR(50) = NULL
)

SELECT Name 
    FROM 
WHERE Name LIKE '%' + LTRIM(RTRIM(@PartialName)) + '%'

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有