Where 子句 T-SQL 未给出预期结果
Where clause T-SQL gives not the expected results
我在 table_a.value 'abcdefg 10 / 20 / 30 sdafadsfas' 字段中有以下值。
当我 select table_a 并应用以下 where 子句时:
Where table_a.value like '%[0-9] / 20 / [0-9]%'
它将return值:
'abcdefg 10 / 20 / 30 sdafadsfas'
当我应用以下 where 子句时:
Where table_a.value like '%[0-9] / [0-9] / [0-9]%'
它将return没有值。
有人可以解释一下出了什么问题吗?
[0-9]
正好代表 1 个数字。
如果列的值在空格之间、斜线之间恰好包含 1 个数字,则代码中的模式 '%[0-9] / [0-9] / [0-9]%'
将被匹配。
值 'abcdefg 10 / 20 / 30 sdafadsfas'
在该位置包含 2 个数字,而不仅仅是 1 个。
为了让您的代码正常工作,您应该使用这种模式:
'%[0-9] / [0-9][0-9] / [0-9]%'
我在 table_a.value 'abcdefg 10 / 20 / 30 sdafadsfas' 字段中有以下值。
当我 select table_a 并应用以下 where 子句时:
Where table_a.value like '%[0-9] / 20 / [0-9]%'
它将return值:
'abcdefg 10 / 20 / 30 sdafadsfas'
当我应用以下 where 子句时:
Where table_a.value like '%[0-9] / [0-9] / [0-9]%'
它将return没有值。
有人可以解释一下出了什么问题吗?
[0-9]
正好代表 1 个数字。
如果列的值在空格之间、斜线之间恰好包含 1 个数字,则代码中的模式 '%[0-9] / [0-9] / [0-9]%'
将被匹配。
值 'abcdefg 10 / 20 / 30 sdafadsfas'
在该位置包含 2 个数字,而不仅仅是 1 个。
为了让您的代码正常工作,您应该使用这种模式:
'%[0-9] / [0-9][0-9] / [0-9]%'