powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Left и SUBSTRING , не работает отнимание
9 сообщений из 9, страница 1 из 1
Left и SUBSTRING , не работает отнимание
    #39729424
odisssey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Строковые функции Left и SUBSTRING почему то не работает отнимание.
Что я делаю не так?
[name_back] - содержит наименование бэкапа namebd_Full_date.bak

Работает
SELECT [id]
,[date_ins]
,[date_back]
,[path]
,[name_back]
,SUBSTRING([name_back],0,(PATINDEX('%_Full%', [name_back])+2) )
FROM [dbo].[backups_depth]
GO
Не работает
SELECT [id]
,[date_ins]
,[date_back]
,[path]
,[name_back]
,SUBSTRING([name_back],0,(PATINDEX('%_Full%', [name_back])-2 ))
FROM [dbo].[backups_depth]
GO
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729429
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что работает и не работает? результаты запросов какие?
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729433
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SUBSTRING ( expression ,start , length )

length
Положительное целое число или выражение типа bigint, указывающее количество символов выражения expression, которое будет возвращено. Если значение length отрицательно, возникает ошибка и выполнение инструкции прерывается. Если сумма start и length больше количества символов в expression, то возвращается целочисленное выражение значения, начинающееся со значения start .

https://docs.microsoft.com/ru-ru/sql/t-sql/functions/substring-transact-sql?view=sql-server-2017
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729434
odisssey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во втором случае выдает ошибку
Msg 537, Level 16, State 3, Line 17
Invalid length parameter passed to the LEFT or SUBSTRING function.

в первом нормально отрабатывает, так как и должен - выдает нужное кол-во символов с учетом добавления.
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729436
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odisssey,

начнём с того, что символы в строке нумеруются с 1.

Символ "_" в шаблоне для LIKE и PATINDEX имеет особый смысл: это один любой символ.
Если нужно именно подчёркивание, то проще всего писать так: '%[_]Full%'
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729438
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odisssey,

ну хоть добавть в условие
Код: sql
1.
name_back LIKE %_Full%


а так у вас в минус поди уходит, вообще просто уберите SUBSTRING , и посмотрите что даёт PATINDEX('%_Full%', [name_back])-2)
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729440
odisssey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
точно! спасибо! в выборке есть пару строк с кол-во символов 1-2.
Вот читал же описание )) но не учел, спасибо!
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729450
odisssey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapodisssey,

начнём с того, что символы в строке нумеруются с 1 .

Символ "_" в шаблоне для LIKE и PATINDEX имеет особый смысл: это один любой символ.
Если нужно именно подчёркивание, то проще всего писать так: '%[_]Full%'

ну вобщем на данный момент вроде сносно, но позиция - 0, если ставить 1, то к имени БД добавляется подчерк.
...
Рейтинг: 0 / 0
Left и SUBSTRING , не работает отнимание
    #39729459
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
odissseyiapodisssey,

начнём с того, что символы в строке нумеруются с 1 .

Символ "_" в шаблоне для LIKE и PATINDEX имеет особый смысл: это один любой символ.
Если нужно именно подчёркивание, то проще всего писать так: '%[_]Full%'

ну вобщем на данный момент вроде сносно, но позиция - 0, если ставить 1, то к имени БД добавляется подчерк.

автор явно что-то курит
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Left и SUBSTRING , не работает отнимание
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]