sql >> Databáze >  >> RDS >> Sqlserver

Počet výskytů určitého znaku v řetězci

Neexistuje pro to žádná přímá funkce, ale můžete to udělat pomocí nahrazení:

declare @myvar varchar(20)
set @myvar = 'Hello World'

select len(@myvar) - len(replace(@myvar,'o',''))

V podstatě vám to říká, kolik znaků bylo odstraněno, a tedy kolik jejich instancí bylo.

Extra:

Výše uvedené lze rozšířit tak, aby počítal výskyty víceznakového řetězce vydělením délkou hledaného řetězce. Například:

declare @myvar varchar(max), @tocount varchar(20)
set @myvar = 'Hello World, Hello World'
set @tocount = 'lo'

select (len(@myvar) - len(replace(@myvar,@tocount,''))) / LEN(@tocount)


  1. Příklad hromadného shromažďování Oracle pomocí objektu typu typ řádku kurzoru

  2. Jak spustit soubor .sql ve vývojářském nástroji Oracle SQL pro import databáze?

  3. PostgreSQL matematické funkce

  4. 'IF' v příkazu 'SELECT' - zvolte výstupní hodnotu na základě hodnot sloupců