Сравнение строк в SQL #487349


#0 by Сергиус
Кто подскажет..как в запросе sql(не 1с) сравнить строку с каким то значение так, чтобы бралось не само значение строки а сокращенное(без пробелов). Например: SELECT * from Tabl Where Cod = '123' При этом в Cod стоит '1 2 3'. Как сделать чтобы вот эти лишние пробелы не учитывались(сжимались)?
#1 by antoneus
like (1%2%3)?
#2 by antoneus
не, вру
#3 by Сергиус
в чем?)
#4 by antoneus
% - любое количество любых символов
#5 by Сергиус
ты можешь подробнее?
#6 by Егор Сергеевич
не врешь
#7 by antoneus
так попробуй SELECT * from Tabl Where replace(Cod, ' ', '') = '123'
#8 by Сергиус
пробовал..пишет, что не знает такой функции как replace...
#9 by Егор Сергеевич
а вариант чем не устраивает?
#10 by Егор Сергеевич
+ понял. туплю
#11 by Сергиус
я не вижу вариант у меня сразу с ветка начинается...продублируешь, что там?
#12 by antoneus
ну, попробуй , хотя в выборку попадет и "1 2 3" и "1243"
#13 by antoneus
там like(1%2%3)
#14 by antoneus
а чо за sql такой, что replace не понимает?
#15 by Жан Пердежон
читай маны по своему скулю, какие там функции для работы со строками
#16 by Сергиус
СonnStr =    "Driver={Microsoft Access Driver (*.mdb)};Dbq="+СокрЛП(ПутьКФайлу)  +";Uid=Admin;Pwd=";        Попытка        ФайлПрайсаПоставщика = Новый COMОбъект("ADODB.Connection");        ФайлПрайсаПоставщика.ConnectionString = СonnStr;        ФайлПрайсаПоставщика.Open;    Исключение        ФайлПрайсаПоставщика = Неопределено;    КонецПопытки;        Если ФайлПрайсаПоставщика <> Неопределено Тогда                Cmd = New COMОбъект("ADODB.Command");        Cmd.ActiveConnection = ФайлПрайсаПоставщика;                Cmd.CommandText = "Select        |     *        |FROM        |     PREISLISTE2 Pr        |Where        |     Replace(Pr.TNR,' ','') = '123'";                НайтиПоз = Cmd.Execute;     КонецЕсли; Пытаюсь делать из 1с запрос к Аксессовском файлу через ADODB.
#17 by Сергиус
+ при исполнении в строке НайтиПоз = Cmd.Execute;  выдается ошибка что неопределена функция replace.
#18 by Сергиус
+ Вот полный текст ошибки: {Обработка.Прайс.Форма.Форма}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Microsoft Access] Неопределенная функция 'Replace' в выражении.        НайтиПоз = Cmd.Execute; по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Microsoft Access] Неопределенная функция 'Replace' в выражении.
#19 by Сергиус
пришлось делать через Like..вставлять после каждого символа в искомой строке %.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С