Sql как обрезать строку до определенного символа

Удалить часть строки до определенного символа

Удалить часть строки от определенного символа до определенного символа
Всем привет, есть строка (domen\admin — user) как удалить не нужные символы.

Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать.

Как скопировать часть строки до определенного символа?
Допустим, пользователь вводит с клавиатуры строку. Необходимо скопировать часть строки до какого-то.

Как удалить часть строки до определенного слова
Всем привет. Есть строка "C:/Users/AppData/Roaming/.Data/objects/1233as. ". Нужно удалить всю.

Sql как обрезать строку до определенного символа

The SUBSTR functions return a portion of char , beginning at character position , substring_length characters long. SUBSTR calculates lengths using characters as defined by the input character set. SUBSTRB uses bytes instead of characters. SUBSTRC uses Unicode complete characters. SUBSTR2 uses UCS2 code points. SUBSTR4 uses UCS4 code points.

If position is 0, then it is treated as 1.

If position is positive, then Oracle Database counts from the beginning of char to find the first character.

If position is negative, then Oracle counts backward from the end of char .

If substring_length is omitted, then Oracle returns all characters to the end of char . If substring_length is less than 1, then Oracle returns null.

char can be any of the data types CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , or NCLOB . The exceptions are SUBSTRC , SUBSTR2 , and SUBSTR4 , which do not allow char to be a CLOB or NCLOB . Both position and substring_length must be of data type NUMBER , or any data type that can be implicitly converted to NUMBER , and must resolve to an integer. The return value is the same data type as char , except that for a CHAR argument a VARCHAR2 value is returned, and for an NCHAR argument an NVARCHAR2 value is returned. Floating-point numbers passed as arguments to SUBSTR are automatically converted to integers.

Oracle Database Globalization Support Guide for more information about SUBSTR functions and length semantics in different locales

Appendix C in Oracle Database Globalization Support Guide for the collation derivation rules, which define the collation assigned to the character return value of SUBSTR


Функция SUBSTRING вырезает и возвращает заданное количество символов из строки.

Первым параметром функция принимает поле или строку, вторым параметром — с какой позиции начинать вырезания (нумерация символов начинается с 1), третьем параметром — сколько символов брать.

Третий параметр не является обязательным. Если он не указан, текст будет вырезан с указанной позиции и до конца строки.

См. также функцию MID, которая также вырезает часть строки.

См. также функцию SUBSTRING_INDEX, которая берет часть строки по указанному разделителю.


Третий параметр не обязателен, в этом случае текст будет вырезан с указанной позиции и до конца строки:


Все примеры будут по этой таблице texts, если не сказано иное:

1 Это первый длинный текст!
2 Это второй длинный текст!


В данном примере из строки вырезаются и возвращаются 6 символов, начиная с 5-го:

SQL запрос выберет следующие строки:

1 первый
2 второй

Запрос можно переписать в следующем виде:


В данном примере возвращается вся строка до конца, начиная с пятого символа:

Remove the last character in a string in T-SQL?

How do I remove the last character in a string in T-SQL ?

22 Answers 22


If for some reason your column logic is complex (case when . then . else . end), then the above solutions causes you to have to repeat the same logic in the len() function. Duplicating the same logic becomes a mess. If this is the case then this is a solution worth noting. This example gets rid of the last unwanted comma. I finally found a use for the REVERSE function.

If your string is empty,

then this code will cause error message ‘Invalid length parameter passed to the substring function.’

You can handle it this way:

It will always return result, and NULL in case of empty string.

Maxim Grachev

This will work even when source text/var is null or empty:

David Rogers

David Roach

Sagar V

Farrukh Saleem Sheikh

This is quite late, but interestingly never mentioned yet.

If your coloumn is text and not varchar , then you can use this:

If you want to do this in two steps, rather than the three of REVERSE-STUFF-REVERSE, you can have your list separator be one or two spaces. Then use RTRIM to trim the trailing spaces, and REPLACE to replace the double spaces with ‘,’

However, this is not a good idea if your original string can contain internal spaces.

Not sure about performance. Each REVERSE creates a new copy of the string, but STUFF is a third faster than REPLACE.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *