Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Ile razy dany znak pojawia się w ciągu znaków

Nie ma na to bezpośredniej funkcji, ale możesz to zrobić za pomocą zamiany:

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

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

Zasadniczo informuje to, ile znaków zostało usuniętych, a zatem ile było ich wystąpień.

Dodatkowo:

Powyższe można rozszerzyć o zliczanie wystąpień ciągu wieloznakowego, dzieląc przez długość szukanego ciągu. Na przykład:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nieudane wywołanie ODBC z procedurą składowaną — zapytanie przekazujące

  2. Korzyści z używania notacji porządkowej SQL?

  3. Jak zamienić ciąg w kolumnie tabeli SQL Server?

  4. Uzyskać czas datetime przy użyciu T-SQL?

  5. Konwertuj kolumnę Datetime z UTC na czas lokalny w instrukcji select