【发布时间】:2018-01-06 08:09:54
【问题描述】:
我正在使用 like 运算符寻找正确的模式。
我的代码:
DECLARE @exp1 varchar(100) = '<<PointBalance , 8>>'
DECLARE @exp2 varchar(100) = '<<PointBalance , 985>>'
IF (TRIM(REPLACE(@exp1, ' ', '')) LIKE '<<PointBalance,[0-9]>>')
PRINT 'Matched'
正如预期的那样,if 语句不会为 exp2 打印“匹配”。
位数不一样。我需要一个验证 nDigit 数字的模式。
【问题讨论】:
-
你能用你想要的结果编辑问题吗?我不清楚。
-
@YogeshSharma 我需要将 '>' 替换为为 exp1 和 exp2 打印 'Matched' 的模式。收到了吗?
-
对于第二个@exp2 变量,您需要将其检查为
IF (trim(REPLACE(@exp2, ' ', '')) LIKE '<<PointBalance,[0-9][0-9][0-9]>>'),因为它的长度变为3 位数。 -
@YogeshSharma 我知道。问题是我不知道这个数字有多少位!
标签: sql sql-server tsql sql-like sql-server-2017