在sql中设置参数,查询无效

Oz *_*ian 3 sql t-sql

我在这里有这个代码:

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)

任何的想法?

jpw*_*jpw 6

您需要指定变量的大小并在使用时删除引号:

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.