我在这里有这个代码:
DECLARE @inputform varchar
SET @inputform = 'J61807017B'
SELECT * FROM test where text1 LIKE '@inputform'
Run Code Online (Sandbox Code Playgroud)
这不会给我想要的输出,但是当我这样做时它起作用:
DECLARE @inputform varchar
SET @inputform = 'J61807017B'
SELECT * FROM test where text1 LIKE 'J61807017B'
Run Code Online (Sandbox Code Playgroud)
任何的想法?
您需要指定变量的大小并在使用时删除引号:
DECLARE @inputform varchar(20)
SET @inputform = 'J61807017B'
SELECT * FROM test where text1 = @inputform
-- or text1 like '%'+ @inputform +'%' if you want to do partial matching
Run Code Online (Sandbox Code Playgroud)
如果未指定char/varchar值的大小,则大小将为1.
从手册:
如果未在数据定义或变量声明语句中指定n,则默认长度为1.