Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не работает substr+right Teradata / 15 сообщений из 15, страница 1 из 1
19.10.2018, 11:00
    #39719762
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Пишу условие
Код: sql
1.
2.
3.
4.
5.
select
case
when lv3.code like 's' then substr(lv3.name,4)
when lv3.code like 'h' then substr(lv3.name,right(lv3.name,3))
end



при выполнении пишет ошибку - The format or data contains a bad character

Запрос должен при коде s удалять 4 символа справа а при h 3 слева.
не могу найти ошибку. Помогите...
...
Рейтинг: 0 / 0
19.10.2018, 12:41
    #39719888
Glebanski
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
результат
Код: plsql
1.
2.
3.
4.
select
case
when lv3.code like 'h' then right(lv3.name,3)
end


Даст вам намек
...
Рейтинг: 0 / 0
19.10.2018, 12:59
    #39719914
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Glebanski,

к примеру в поле Москва ФЛ,
right(lv3.name,3) выводит ' ФЛ'

намек не пойму
...
Рейтинг: 0 / 0
19.10.2018, 15:31
    #39720020
WarAnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krd,

что возвращает right(lv3.name,3)? не думаю что число...
...
Рейтинг: 0 / 0
19.10.2018, 16:46
    #39720081
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
WarAnt,

строку возвращает
...
Рейтинг: 0 / 0
19.10.2018, 17:07
    #39720099
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krdWarAnt,

строку возвращаетА что принимает вторым параметром substr?
...
Рейтинг: 0 / 0
21.10.2018, 10:20
    #39720405
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
число принимает. что тогда можно использовать?
...
Рейтинг: 0 / 0
21.10.2018, 12:51
    #39720431
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krdчисло принимает. что тогда можно использовать?Нужно использовать right вместо substr
...
Рейтинг: 0 / 0
21.10.2018, 12:57
    #39720432
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
alexeyvgRomanov-krdчисло принимает. что тогда можно использовать?Нужно использовать right вместо substrА, вам же надо отрезать.
Тогда непонятно, почему вы так написали, substr(lv3.name,4) отрезает 4 символа слева, а не справа

Нужно так:
Код: sql
1.
2.
3.
4.
5.
select
case
when lv3.code like 's' then substr(lv3.name,1, len(lv3.name)-4)
when lv3.code like 'h' then substr(lv3.name,3)
end
...
Рейтинг: 0 / 0
22.10.2018, 08:22
    #39720689
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
alexeyvg,

А если нужно чтобы просто убирал символы слева например Москва ГМ, Ростов ГМ - оставлял только Москва, Ростов. символы ГМ везде одинаковы, можно что то наподобии trim использовать. только он не подходит
...
Рейтинг: 0 / 0
22.10.2018, 08:23
    #39720690
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krd,

Справа убирал*
...
Рейтинг: 0 / 0
22.10.2018, 09:02
    #39720713
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krd,

а да, понял как сделать. Но у меня почему то с кириллицей не работает пишет ошибку

[Error 6706] The string contains an untranslatable character
...
Рейтинг: 0 / 0
22.10.2018, 09:02
    #39720714
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krd,

Хотя с латинскими буквами все ок
...
Рейтинг: 0 / 0
22.10.2018, 09:16
    #39720719
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Romanov-krdа да, понял как сделать. Но у меня почему то с кириллицей не работает пишет ошибку

[Error 6706] The string contains an untranslatable characterНу, вы всё таки на форуме MSSQL, а не Teradata :-)
Может, там у вас есть что то вроде констант юникода, как в сиквеле, и вообще нужно знать, какие строковые типы бывают, в том числе типично используемые для не-английского; в общем, читайте документацию.
...
Рейтинг: 0 / 0
22.10.2018, 14:14
    #39720890
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не работает substr+right Teradata
Нашел. Вдруг кому то пригодится - вместо функции length используем character_length, тогда работает с кириллицей

select substr('Ростов ГМ',1,character_length('Ростов ГМ')-3
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / не работает substr+right Teradata / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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