【383天】我爱刷题系列142(2018.02.23)

@(一只心中无码的程序员)专栏

叨叨两句

  1. ~

SQL习题037

1

题目描述
查找字符串’10,A,B’ 中逗号’,’出现的次数cnt。

由于 SQLite 中没有直接统计字符串中子串出现次数的函数,因此本题用length()函数与replace()函数的结合灵活地解决了统计子串出现次数的问题,属于技巧题,即先用replace函数将原串中出现的子串用空串替换,再用原串长度减去替换后字符串的长度,最后除以子串的长度(本题中此步可省略,若子串长度大于1则不可省)。详情请参考:
http://www.cnblogs.com/huangtailang/p/5cfbd242cae2bcc929c81c266d0c875b.html
http://sqlite.org/lang_corefunc.html#replace

SELECT (length("10,A,B")-length(replace("10,A,B",",","")))/length(",") AS cnt
还可以利用OJ系统的Bug直接输出2次来通过测试

SELECT 2 AS cnt
    原文作者:SQL
    原文地址: https://segmentfault.com/a/1190000013335106
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞