Y有500000个值,如
190|12131|23|123|0|0|0|0|112
220|234|23|111|0|1|0|1|769
在每个值中有8 |
但在某些值中存在错误,而不是8 |
11|0000020|12|14 -----3 |
234|23|000|1|2 ------4 |
如何列出小于8 |
我需要使用功能吗?如果是这样,我如何以及如何调用该函数。我从未在SQL中使用过函数。
答案 0 :(得分:3)
您可以将字符串的长度与没有|
的字符串进行比较,而不是计算|
的出现次数:
select *
from X
where length(Y) <> (length(replace(Y, '|', '')) + 8)
不确定这是否比约翰的答案更快。
答案 1 :(得分:2)
假设max 8 |
不优雅,也不敏感
Select *
from X
Where Y not like '%|%|%|%|%|%|%|%|%'