【发布时间】:2015-06-17 06:35:13
【问题描述】:
我正在使用SQL Server 2008,并且我有以下存储过程:
ALTER PROC [dbo].[spGetLatestLangId]
@salt VARCHAR(50),
@result VARCHAR(50) OUTPUT
AS
DECLARE @CheckStr AS VARCHAR(50)
SET @CheckStr = @salt + '%'
SET @result = (SELECT TOP 1 Id FROM Lang WHERE salt LIKE @CheckStr ORDER BY dtCrt DESC)
假设我的Lang 表有以下行:
Id dtCrt
------------- ----------
PRODUCT_1 2011-01-01
PRODUCT_2 2011-01-02
PRODUCTCODE_1 2011-01-05
当我使用以下参数调用存储过程时
EXEC spGetLatestLangId 'PRODUCT_', @a OUTPUT
我得到的是PRODUCTCODE_1 而不是PRODUCT_2,因为它忽略了underscore。如何在LIKE 子句中转义underscore?
【问题讨论】:
-
试试这个:
LIKE 'PRODUCT[_]%'
标签: sql sql-server