我有一个使用此SQL的SQL过程:
select CenterExpensesID,sum(NISAmount) NISAmount
from ktrn10_fnCostCentersTransactions(@month_start_date,@todate,'BEI')
where AccountNumber like @like_account
group by CenterExpensesID
@like_account是可以获取模式的参数,例如'18%'
是否可以制作一个模式来显示所有记录“不像'18%'”
'[^ 1] [^ 8]%'模式不是解决方案,因为它也排除了19,58等。
答案 0 :(得分:0)
不。如果SQL Server支持正则表达式,这将很容易。
您可以做的一件事就是解析表达式。所以,这就是您想要的:
where (accountNumber like @param and @param not like '^%') or
(accountNumber not like stuff(@param, 1, 1, '') and param like '^%')
然后您可以将'18%'
的参数传递为like
,将'^18%'
的参数传递为not like
。
或者,您可以只使用两个参数:
where accountNumber like @like_param and
accountNumber not like @notlike_param
默认值类似于'%'
的{{1}}和@like_param
的{{1}}。