Sch*_*ief 4 sql t-sql sql-server
我有一个nvarchar4 位数字的字段。前 2 位数字介于 00 到 99 之间。接下来的 2 位数字应为 00 到 15 之间的数字
我的 SQllike看起来像这样:
I4020 like '[0-9][0-9][0-1][0-9]'
Run Code Online (Sandbox Code Playgroud)
问题是,例如 1219 是可能的。
是否可以用类似的模式来做到这一点?
BR斯特凡
使用一种LIKE 模式不可能做到这一点。但是,您可以使用其中两个:
(I4020 like '[0-9][0-9]0[0-9]' OR I4020 like '[0-9][0-9]1[0-5]')
Run Code Online (Sandbox Code Playgroud)
或者,如果字段始终包含数字,您可以使用数字匹配:
I4020 LIKE '[0-9][0-9][0-9][0-9]'
AND CONVERT(int, RIGHT(I4020, 2)) <= 15
Run Code Online (Sandbox Code Playgroud)
但请注意,T-SQLAND不会短路:如果 的最右边的两个字母I4020不是数字,则后一个查询可能会失败。