SQLite
 sql >> база данни >  >> RDS >> SQLite

Как Substr() работи в SQLite

SQLite substr() функцията ви позволява да върнете подниз от низ въз основа на дадено начално местоположение в низа.

Изисква два аргумента и приема трети незадължителен аргумент.

Актуализиране :От SQLite 3.34.0 (издадена на 1 декември 2020 г.), substr() вече може да се нарече substring() за съвместимост със SQL Server.

Синтаксис

Можете да извикате substr() по някой от следните начини:

substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
  • X е пълният низ, който съдържа поднизът, който искате да върнете.
  • Y е местоположението на първия знак от подниз, който искате да върнете от този низ.
  • Z е броят на знаците, които искате да бъдат върнати. Ако се пропусне, всички следващи знаци се връщат (започвайки от Y ).

Ако X е низ, тогава символните индекси се отнасят до действителните UTF-8 знаци. Ако X е BLOB, тогава индексите се отнасят до байтове.

Имайте предвид, че substring() синтаксисът е достъпен само от SQLite 3.34.0.

Пример с 3 аргумента

Ето основен пример, за да демонстрирате как да използвате substr() с три аргумента.

SELECT substr('Industrial', 3, 4);

Резултат:

dust

Пример с 2 аргумента

Ако пропусна третия аргумент от предишния пример, получавам следния резултат.

SELECT substr('Industrial', 3);

Резултат:

dustrial

Отрицателна начална точка

Можете да предоставите отрицателна стойност за втория аргумент. Когато направите това, първият знак от подниз се намира чрез броене отдясно, а не отляво.

SELECT substr('Industrial', -3);

Резултат:

ial

Ето още един пример, този път уточнявам дължината на подниза.

SELECT substr('Industrial', -8, 4);

Резултат:

dust

Така отрицателните стойности имат същия ефект като при използване на substring() функция в MySQL. MySQL също има substr() функция, която е синоним на нейния substring() функция.

Това обаче е различно от начина, по който SQL Server третира отрицателните стойности. Когато подадете отрицателна стойност на substring() в SQL Server той просто ще започне да брои във въображаема точка, преди низът да започне.

Отрицателна дължина на подниз

Предишният пример използва отрицателна отправна точка. В този пример ще използвам отрицателна дължина. С това имам предвид, че ще дам отрицателна стойност за третия аргумент.

SELECT substr('Industrial', -3, -4);

Резултат:

ustr

Така че предоставянето на отрицателна стойност за третия аргумент води до връщане на знаците, предхождащи началната точка.

Това важи и когато вторият аргумент е положителна стойност.

SELECT substr('Industrial', 7, -4);

Резултат:

dust

Пример за база данни

Ето пример, който използва substr() в заявка за база данни спрямо примерната база данни на Chinook.

SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;

Резултат:

substr(Title, 1, 20)
--------------------
For Those About To R
Balls to the Wall   
Restless and Wild   
Let There Be Rock   
Big Ones            
Jagged Little Pill  
Facelift            
Warner 25 Anos      
Plays Metallica By F
Audioslave          

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Надстройте редовете само при надстройка на приложението

  2. Вмъкване на текуща дата и час в базата данни на SQLite

  3. Как да извлечете деня, месеца и годината от дата в SQLite

  4. Как да изброя името на таблицата от sqlite DB -- Android

  5. Как да пропуснете редове, които нарушават ограничения при вмъкване на данни в SQLite