见下面的例子
where '1|2|||1|' like '%%|%%|%%|%%|[^3]|' /* it will return true if the string between last two pipe symbols is not like '3'*/
上面的代码运行正常。
同样地,我需要为最后两个不喜欢10或11的管道之间的字符串构建一个表达式。或者至少不喜欢10.所以尝试如下。
where '1|2|||8|' like '%%|%%|%%|%%|[^10]|'
上面的语句为1,0和10而不是10返回false。因此上面的查询将1视为单独的字符串,0视为单独的字符串。 我期待一个表达式,只有当最后两个管道之间的字符串为10时才返回false。不是1或0。
我也尝试过使用花括号。但它表现不同。
where '1|2|||8|' like '%%|%%|%%|%%|[{^10}]|
此外,如果你可以派生一个表达式 - 最后两个管道之间的字符串不应该是10或11.
注意:我不能在查询中使用“ OR ”或“NOT LIKE”。
有什么想法吗?
答案 0 :(得分:2)
您需要分别检查每个字符
喜欢“...不是1后跟不是(0或1)”
where '1|2|||8|' like '%%|%%|%%|%%|[^1][^01]|'