Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как удалить первый символ  [new]
LisSp
Member

Откуда:
Сообщений: 186
Добрый день!
Как можно удалить первый символ столбца? Кол-во символов всегда разное, но первый символ, который надо убрать-всегда одинаковый.

Например, у меня по запросу выводятся каждый раз разные данные:

select Str1
from Table


Str1
1Яблоко
1Мандарин


Надо убрать "1" -первый символ.

Может быть заменить "1" пробелом с помощью replace, а затем убрать пробелы с помощью rtrim? Или можно попроще?
17 мар 14, 08:06    [15735765]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
LisSp
Member

Откуда:
Сообщений: 186
Не.. мой вариант не подходит таки.. Т.к. там символ "1" может быть и в середине строки и его нужно оставить..
17 мар 14, 08:08    [15735770]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
SUBSTRING()

Сообщение было отредактировано: 17 мар 14, 08:22
17 мар 14, 08:22    [15735799]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
LisSp
Member

Откуда:
Сообщений: 186
tpg
SUBSTRING()


Точно! Спасибо!
17 мар 14, 08:24    [15735803]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
stuff() - оно попроще, длину строки не надо вычислять:)
17 мар 14, 09:02    [15735933]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Avangard1987
Member

Откуда:
Сообщений: 15
автор

SELECT Stuff( Str1, 1, 1, '' )
FROM Table


1-ый параметр - строка, с которой работаем

2-ой параметр - номер символа, с которого делаем замену

3-ий параметр - длина подстроки, которую будем заменять

4-ый параметр - строка, на которую будем заменять

Т.е. первый символ заменяем на пустую строку.
17 мар 14, 09:21    [15735982]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
LisSp
Member

Откуда:
Сообщений: 186
Спасибо!!!
17 мар 14, 09:28    [15736004]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Азагаш
Member

Откуда:
Сообщений: 450
select substr('1Мандарин', 2) from dual
17 мар 14, 12:05    [15737048]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Азагаш
Member

Откуда:
Сообщений: 450
Азагаш
select substr('1Мандарин', 2) from dual

я форумом ошибся
17 мар 14, 12:06    [15737060]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как удалить первый символ  [new]
982183
Member

Откуда: VL
Сообщений: 3387
Встала аналогичная задача.
в MS SQL первый раз пытаюсь сделать

На фоксе всё элементарно

replace all fio.kv with substr(fio.kv,4,10) for fio.kv="кв."

А как и где на MS SQ запустить подобную конструкцию?
3 апр 15, 09:12    [17467532]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
982183, ненадо рассказывать, как что-то делается где-то. Сформулируйте задачу, а мы подскажем, как её реализовывать.
И да - версию сервера не забывайте озвучивать.
3 апр 15, 09:37    [17467639]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
А как и где на MS SQ запустить подобную конструкцию?
QA.

Но сначала озвучьте задачу.
Цифры надо удалить ?
3 апр 15, 10:44    [17468020]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1595
LSV
А как и где на MS SQ запустить подобную конструкцию?
QA.

Но сначала озвучьте задачу.
Цифры надо удалить ?
Перевожу с фоксового на общеупотребительный, дорого! :)
Убрать первые четыре символа в поле если содержимое этого поля начинается на "кв."
3 апр 15, 10:52    [17468096]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
Sergey Sizov
LSV
пропущено...
QA.

Но сначала озвучьте задачу.
Цифры надо удалить ?
Перевожу с фоксового на общеупотребительный, дорого! :)
Убрать первые четыре символа в поле если содержимое этого поля начинается на "кв."
UPDATE T
SET F=STUFF(F,1,4,'')
WHERE F LIKE 'кв.%';
3 апр 15, 10:56    [17468119]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1595
iap,

прошу прощения, чуть-чуть ошибся. substr(fio.kv,4,10) означает получение десяти символов начиная с четвертого. В общем, обычный substring(). То есть stuff() тут не совсем подходит.
3 апр 15, 11:07    [17468198]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
Sergey Sizov
iap,

прошу прощения, чуть-чуть ошибся. substr(fio.kv,4,10) означает получение десяти символов начиная с четвертого. В общем, обычный substring(). То есть stuff() тут не совсем подходит.
UPDATE T
SET F=STUFF(F,4,10,'')
WHERE F LIKE 'кв.%';
В HELP по функции STUFF заглянуть не пробовали?
https://msdn.microsoft.com/ru-ru/library/ms188043(v=sql.120).aspx
3 апр 15, 11:11    [17468218]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1595
iap,
пробовал. :) Но substring() таки ближе к тому, что показал вопрошавший.
3 апр 15, 11:40    [17468406]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
982183
Member

Откуда: VL
Сообщений: 3387
Искренне благодарен.
направление копания ясно.

И всё же не substr(fio.kv,4,10)
Это убрать не первые 4, а первые 3

Исправляюсь с постановкой.
Задача простая - есть поле kv в табличке fio
(номер квартиры в справочнике неких людей)
Изначально было сделано неправильно, и в данное поле операторы вводили префиксы
"кв "
"кв"
"кв."
"Кв."
и т.д.

Задача - убрать эти нечисловые префиксы

Все возможные префиксы нашел и сгруппировал.
Осталось написать и запустить скрипт.
4 апр 15, 05:00    [17472686]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
982183
Member

Откуда: VL
Сообщений: 3387
Я правильно понял, что в приведенном примере

T - имя таблицы
F - имя поля
% - пробел

?
4 апр 15, 05:02    [17472687]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
982183
Member

Откуда: VL
Сообщений: 3387
Сделал вот так:
UPDATE dbo.fio SET fio.kvn_pr=REPLACE(fio.kvn_pr,'кв.','');

Жду критики
4 апр 15, 05:29    [17472701]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
982183
Я правильно понял, что в приведенном примере

T - имя таблицы
F - имя поля
% - пробел

?
Вы не знаете, что такое % в LIKE???
4 апр 15, 11:02    [17473047]     Ответить | Цитировать Сообщить модератору
 Re: Как удалить первый символ  [new]
982183
Member

Откуда: VL
Сообщений: 3387
Вот до сегодняшнего дня и не знал.
Спасибо что указали.


Всё же синтаксис привычных инструментов отличается
7 апр 15, 09:26    [17481930]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить