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

Как да вмъкнете низ в друг низ в SQL Server с помощта на STUFF()

В SQL Server можете да използвате T-SQL STUFF() функция за вмъкване на низ в друг низ. Това ви позволява да правите неща като вмъкване на дума на конкретна позиция. Освен това ви позволява да замените дума на конкретна позиция.

Ето официалния синтаксис:

STUFF ( character_expression , start , length , replaceWith_expression )
  • character_expression е оригиналният низ. Това всъщност може да бъде константа, променлива или колона от символни или двоични данни.
  • start определя началната позиция (т.е. къде ще бъде вмъкнат новият низ).
  • length е колко знака трябва да бъдат изтрити от оригиналния низ.
  • replaceWith_expression е низът, който се вмъква. replaceWith_expression може да бъде константа, променлива или колона от символни или двоични данни.

Заменете дума

Ето пример, при който заменям дума в низ.

SELECT STUFF('Cats and dogs', 6, 3, 'like');

Резултат:

Cats like dogs

В този случай уточнявам, че думата like трябва да се вмъкне на позиция 6 и че 3 знака трябва да бъдат изтрити от оригиналния низ (това изтрива думата and ). Така че думата and се изтрива и думата like е вмъкнат.

Вмъкнете дума

Ето пример за вмъкване на дума, без да се изтрива нищо от оригиналния низ:

SELECT STUFF('Cats and dogs', 10, 0, 'big ');

Резултат:

Cats and big dogs

Нищо не се изтрива от оригиналния низ, защото посочих 0 като трети аргумент.

Стойности извън обхвата

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

Пример:

SELECT STUFF('Cats and dogs', 20, 4, 'rabbits');

Резултат:

NULL

В този случай оригиналният низ не е дълъг 20 знака, така че резултатът е NULL .

Същото се случва, ако предоставите 0 или отрицателно число:

SELECT STUFF('Cats and dogs', -1, 4, 'rabbits');

Резултат:

NULL

Резултатът от тези примери е в контраст с INSERT() на MySQL функция, която би върнала оригиналния низ в този сценарий. INSERT() на MySQL прави основно същото нещо като STUFF() на T-SQL (с изключение на случаи като тези).

Вмъкване на NULL стойности

Ако въведете стойност NULL, вашият резултат просто ще премахне посочения брой знаци от посочената позиция. С други думи, нищо не се вмъква, но знаците все още се премахват, както е посочено.

Пример:

SELECT STUFF('Cats and dogs', 6, 3, NULL);

Резултат:

Cats dogs

Това е друга област, в която MySQL се различава от T-SQL. Правете този пример с INSERT() на MySQL функцията би върнала резултат от NULL .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте OBJECTPROPERTY(), за да определите дали даден обект е изглед в SQL Server

  2. Връщане на привилегии на таблица от свързан сървър в SQL Server (T-SQL примери)

  3. CTE рекурсия за получаване на йерархия на дървото

  4. Как да зададете стойност по подразбиране за съществуваща колона

  5. Как да промените пощенския профил на база данни по подразбиране за потребител в SQL Server (T-SQL)