Как в запросе проверить на пустую строку? #338014


#0 by mikecool
В смысле аналог TRIM или СОКРЛП ?
#1 by mikecool
ни одной книжки под рукой, сам не знаю/не помню, а запросец подправить нада... а франь подсунул кривое обновление...
#2 by Конфигуратор Сеня
да ну тебя...
#3 by mikecool
редиска... я же тебя не запросы писать заставляю :)
#4 by mikecool
ладна... подберем перебором :)
#5 by mikecool
не получается перебор... :(
#6 by GenV
А тебе проверку на полностью пустую строку надо (т.е. члибо пустую, либо содержащюю пробелы)? Или все  таки есть другие символы и нужно их отсечь? Первый вариант можно попробывать через сортировку. Второй я не знаю как :(
#7 by mikecool
не, проверить на полностью пустую строку, т.е. аналог СОКРЛП...
#8 by Immortal
почти никак..без извратов не получиццо
#9 by mikecool
а пустая строка является значением NULL?
#10 by Immortal
если там пробелы есто то нет да и без пробелов имхо не будет NULL, а будет ""
#11 by mikecool
таки как мне сравнить строку из базы с ""? блин, вроде простая задача для скуля, но не для восьмерки.. :(
#12 by GenV
Попробуй добавить поле-флаг где прописать типа: ВЫБОР КОГДА НашеПоле < &ПустаяСтрока ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КАК ПолеФлаг Параметр ПустаяСтрока = "_______1" (где вместо "_" - пробелы и их должно быть максимальное возможное количество для строки) Может подойдет :) Мtня изврат тоже заинтересовал. Хотя бы идею ^) Как-то тоже сталкивался с такой задачей.
#13 by Immortal
#14 by GenV
Спасибо. По крайней мере, при таком условии, проверка будет однозначно правильная.
#15 by Immortal
кстати, больше меньше тоже мысль.. только как он их сравнивает?
#16 by GenV
-
#17 by Immortal
- -)
#18 by mikecool
не, должно же быть решение проще...
#19 by NewNick
тогда как варинт юзать подобно %[^{тут перебираем все не пробелеистые символы, хз как}]%
#20 by NewNick
только чето все не то
#21 by mikecool
вот же блин... надо всего лишь проверить, пустой ИНН у конры или нет, а проблема - неразрешимая :)
#22 by Immortal
строка кстати это что? если реквизит чего либо то можно сначала в базе найти эти записи, слить их во временную таблицу, а потом в запросе NOT IN
#23 by NewNick
так там же есть ограничение по длине все намного проще хотя и не элегантно конечно
#24 by mikecool
ИНН - реквизит контрагента, строка нот ин чего?
#25 by Immortal
а=)) ИНН строковый..мде..где то тут пробегала корячка как строку в число переделать.. а там уж и проверить можно.. только там тоже с извратом
#26 by mikecool
перепробовал TRIM, СокрЛП, ПустаяСтрока - не угадал ни одной буквы...
#27 by NewNick
вбей массив в цикле из 13 значений и проверяй что не в (&массивпустыхстрок)
#28 by Immortal
НЕ В(ТаблицеКонтровСХеровымиИНН) но я так понял тебе надо именно этих и найти?  c пустыми,или же просто их отфильтровать?
#29 by NewNick
;)
#30 by GenV
Тоже вариант. Тем более длина ограничена. истина будет для пустой строки, и строк с пробелами в начале (главное чтобы не было перебора длины), ну и вместо единицы нужно поставить самый первый символ по коду. Если пробелов меньше вроде тоже нормально.
#31 by Immortal
ага, это и было.=)
#32 by Immortal
нада посмотреть=) вот как даламаю висту мож и посмотрю=)
#33 by mikecool
запрос на поиск контров с одинаковым ИНН: Контрагенты.Ссылка ИЗ    Справочник.Контрагенты КАК Контрагенты И НЕ (Контрагенты.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо) И <здесь должна быть функция>(Контрагенты.ИНН)="""")
#34 by mikecool
уже появляется мысль: и нафик я подался к этой восьмерке, когда звали писать под оракуль? :)
#35 by NewNick
а в кз вариант "конкурента" ;)  (сорь за оффтоп)
#36 by Immortal
гг=))не, "ораклоид" как то не звучит=)
#37 by NewNick
с таким подходом пиши уж И НЕ (Контрагенты.ЮрФизЛицо = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ФизЛицо) И Контрагенты.ИНН<"0"
#38 by mikecool
ораклист :))
#39 by mikecool
гм... щас попробую...
#40 by GenV
Попробуй: ПустаяСтрока - 11 пробелов и 1
#41 by GenV
" 0" пройдет :(
#42 by Immortal
да да, должно быть верно так.
#43 by NewNick
угу пройдет.. тогда меньше или равно чем 12 пробелов подряд ))
#44 by mikecool
поглядел на время - у меня полночь, и решил: а ну его нафик, это сравнение... завтра придет прог из франя, пусть он свою корявку и правит(поскольку запрос изначально был некорректно им написан)... оставлю только свою проверку на физлицо еще надо обмен проводить с филиалами...
#45 by GenV
Точно, так будет лучше :)
#46 by NewNick
кстати я чет не могу сразу понять а условие на >=" " И <=N*" " даст ли нам чисто варианты из пустых строк с кол-вом пробелов от 1 до N
#47 by Tapo4ek
А че (ВЫБОР КОГДА Таблица.Поле = """" тогда) не канает???
#48 by Tapo4ek
А NULL вообще полуается только когда поле не найдено или строка итога.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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