我有一个这样的存储过程:
ALTER PROCEDURE GetSoNumber (@SO varchar(255))
AS
BEGIN
SELECT OrderNo
FROM Orders_Header
WHERE (DVMOrderNumber LIKE '%'@SO & '%')
End
如何在存储过程中的变量(LIKE
)上应用SQL %
通配符(@SO
)?
我尝试使用'%@SO%'
,但无法正常工作。
我想选择部分文本并用它来搜索数据库。
由于
答案 0 :(得分:4)
尝试:
ALTER PROCEDURE GetSoNumber (@SO varchar(255))
AS
BEGIN
SELECT OrderNo
FROM Orders_Header
WHERE (DVMOrderNumber LIKE '%' + @SO + '%')
End
这只是一个正常的字符串连接。
答案 1 :(得分:4)
我认为是SQL Server T-SQL?如果是这样,请使用:
ALTER PROCEDURE GetSoNumber (@SO varchar(255)) AS
BEGIN
SELECT OrderNo
FROM Orders_Header
WHERE (DVMOrderNumber LIKE '%' + @SO + '%')
END
在Oracle中,连接使用" ||",所以:
ALTER PROCEDURE GetSoNumber (@SO varchar(255)) AS
BEGIN
SELECT OrderNo
FROM Orders_Header
WHERE (DVMOrderNumber LIKE '%' || @SO || '%')
END
答案 2 :(得分:0)
ALTER PROCEDURE GetSoNumber (@SO varchar(255))
AS
BEGIN
declare @varSO varchar(225)='%%'
if @SO is not null
set @varSO='%'+@SO+'%'
SELECT OrderNo
FROM Orders_Header
WHERE DVMOrderNumber LIKE @varSO
End