如何在方括号内的T-SQL LIKE数字或空字符串中进行?

Bog*_*nov 5 t-sql sql-server sql-server-2012

是否可以LIKE使用一个字符编号或空字符串?

我知道这听起来很愚蠢,我几乎肯定不能这样做,但我会问.

我有一个字段,我将在其中编写LIKE子句(作为字符串).我将与表达以后将其应用于WHERE条款:... LIKE tableX.FormatField ....它必须包含数字(单个字符或空字符串).

有点像[0-9 ].方括号内的空格键表示空字符串.

编辑:

我想我解释得不好.我有一个表,我有一个参数配置 - TblParam与字段DataFormat.我必须TblValue使用字段验证另一个表中的值ValueToCheck.验证由查询完成.验证的部分如下所示:

... WHERE TblValue.ValueToCheck LIKE TblParam.DataFormat ...

对于配置值,我需要表达1个数字字符或空字符串.有点像[0-9''].由于检查的自动性,我需要单个表达式(没有ANDOR OR运算符),它可以适合查询(参见上面的示例).相同的检查对其他类型的检查有效,所以我必须适合我的检查引擎.

我几乎可以肯定我不能使用,[0-9'']但我问其他人是否有其他合适的解决方案.

实际上我很难验证版本字符串:1.0.1.21.0.2.它可以包含2-3个点(.)和数字.

pap*_*zzo 1

我很确定这是不可能的,因为 '' 甚至不是一个字符。

选择ascii(''); 返回null

''='';是真的

'' 一片空白; 是假的

如果你想要精确的 0-9 '' (而不是 ' '),那么你可以这样做(以比like更有效的方式):

where col in ('1','2','3','4','5','6','7','9','0') or (col = '' and DATALENGTH(col) = 0)
Run Code Online (Sandbox Code Playgroud)