LIKE
子句是否可以包含一个字符数或空字符串?
我有一个字段,我将在其中写入LIKE
子句(作为字符串)。稍后我将在WHERE
子句中使用一个表达式:... LIKE tableX.FormatField ...
。它必须包含一个数字(单个字符或空字符串)。
类似于[0-9 ]
。方括号内的空格键表示空字符串。
我有一个表,其中有一个参数配置-TblParam
和字段DataFormat
。我必须验证另一个表TblValue
中的值和字段mn8o1p的值。通过查询进行验证。验证部分如下所示:... WHERE TblValue.ValueToCheck LIKE TblParam.DataFormat ...
对于配置值,我需要一个数字字符或空字符串的表达式。类似于[0-9'']
。由于检查的自动性质,我需要一个适合查询的表达式(不带AND
或OR
运算符)(见上面的示例)。同样的检查适用于其他类型的检查,所以我必须安装检查引擎。
我几乎可以肯定我不能使用[0-9'']
,但有其他合适的解决方案吗?
实际上,我很难验证版本字符串:1.0.1.2
或1.0.2
。它可以包含2-3个点(.
)和数字。
3条答案
按热度按时间bvjxkvbb1#
我很确定这是不可能的,因为“”甚至不是一个字符。
'' = ' '; 是真的
“”为空;为假
如果你只想要0-9英寸(而不是“”),那么你可以这样做(以比like更有效的方式):
6yt4nkrj2#
这是一个棘手的问题……据我所知,只有一个*like子句是不可能做到的。你需要做
like '[0-9]' OR like ''
。您可以通过在
TableX
中添加第二列来实现这一点。这表示第二种模式,或者是否包含空格。pprl5pva3#
如果我正确理解你的问题,你需要一个能捕捉空字符串的东西。尝试使用nullf()函数:
它只返回三条记录:“”、“1”和“2”。
只有一个range子句的更方便的方法是: