我这里有这个代码:
DECLARE @inputform varchar
SET @inputform = 'J61807017B'
SELECT * FROM test where text1 LIKE '@inputform'
这不会给我想要的输出,但是当我这样做时它会起作用:
DECLARE @inputform varchar
SET @inputform = 'J61807017B'
SELECT * FROM test where text1 LIKE 'J61807017B'
有什么想法吗?
答案 0 :(得分: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
如果未指定char / varchar值的大小,则大小将为1.
从手册:
在数据定义或变量声明中未指定n时 声明,默认长度为1。