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

SQLite SUBSTRING() Обяснено

В SQLite, substring() е псевдоним за substr() .

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

substring() именуването беше въведено в SQLite 3.34.0, който беше пуснат на 1 декември 2020 г. Причината, че substring() беше въведен синтаксис за съвместимост със SQL Server.

Синтаксис

Така че вече можете да извикате функцията по някой от следните начини:

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 аргумента

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

SELECT substring('Dolemite', 3, 4);

Резултат:

lemi

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

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

SELECT substring('Dolemite', 3);

Резултат:

lemite

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

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

SELECT substring('Dolemite', -3);

Резултат:

ite

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

SELECT substring('Dolemite', -7, 4);

Резултат:

olem

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

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

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

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

SELECT substring('Dolemite', -1, -4);

Резултат:

emit

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

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

SELECT substring('Dolemite', 6, -4);

Резултат:

olem

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

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

SELECT 
    substring(Name, 1, 10),
    Name
FROM Artist
ORDER BY Name DESC
LIMIT 10;

Резултат:

substring(Name, 1, 10)  Name                             
----------------------  ---------------------------------
Zeca Pagod              Zeca Pagodinho                   
Youssou N'              Youssou N'Dour                   
Yo-Yo Ma                Yo-Yo Ma                         
Yehudi Men              Yehudi Menuhin                   
Xis                     Xis                              
Wilhelm Ke              Wilhelm Kempff                   
Whitesnake              Whitesnake                       
Vinícius E              Vinícius E Qurteto Em Cy         
Vinícius E              Vinícius E Odette Lara           
Vinícius D              Vinícius De Moraes & Baden Powell

В този случай върнах първите десет знака от Name колона. Също така върнах пълното съдържание на Name колона, за да сравните резултатите.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQlite заявка в android с помощта на курсора

  2. Базата данни не можа да се отвори в режим на четене/запис

  3. Как да актуализирате/изтриете с елементи от две различни таблици SQLite

  4. Архивиране/възстановяване на база данни на SQLlite в папка на приложението Google Drive

  5. SQLite SUBSTRING() Обяснено