Рассудите - опять скорость запроса )

  1. 8 г. назад

    Два запроса
    Первый

    ВЫБРАТЬ
    	Контрагенты.Ссылка,
    	ПРЕДСТАВЛЕНИЕ(Контрагенты.Ссылка) КАК Контрагент
    ИЗ
    	Справочник.Контрагенты КАК Контрагенты
    ГДЕ
    	(ПОДСТРОКА(Контрагенты.ИНН, 1, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 2, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 3, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 4, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 5, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 6, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 7, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 8, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 9, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 10, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 11, 1) = " "
    			ИЛИ ПОДСТРОКА(Контрагенты.ИНН, 12, 1) = " ")
    

    Второй

    ВЫБРАТЬ
    	Контрагенты.Ссылка,
    	ПРЕДСТАВЛЕНИЕ(Контрагенты.Ссылка) КАК Контрагент
    ИЗ
    	Справочник.Контрагенты КАК Контрагенты
    ГДЕ
    	Контрагенты.ИНН ПОДОБНО "% %"
    
  2. По идее, нижний отработает быстрее

    Ответы: (2) (9)
  3. (1) мне тоже так кажется, хочется понять зачем программист написал верхний запрос. Тем более поле индексируемое с полнотекстовым поиском.

  4. 25.06.2015 13:23:38 отредактировано ptiz

    Может ему нужны контрагенты только с пробелами в первых 12 символах.

  5. А зачем вообще может понадобиться искать пробелы в инн?

    Ответы: (5)
  6. (4) Потому, как от наших бухов жди чего угодно. У меня такая проверка в подписке на событие Записать работает :), и СокрЛП на наименование сразу.

    Ответы: (7)
  7. В первом варианте запрос превратится в 12 вторых через ОБЪЕДИНИТЬ ВЫБРАТЬ

    Ответы: (10)
  8. (5) а почему именно пробел тогда? Бухи могут и какую нибудь собаку туда поставить, или слово матерное написать

    Ответы: (8)
  9. (7) У меня проверка на числа либо 4 буквы+числа для паспорта, я не стал подробно расписывать.

    Ответы: (11)
  10. (1) почему?

  11. (6) cфигали
    SELECT
    Q_000_T_001.ID,
    CAST(Q_000_T_001.ID AS REF(Reference29)), CAST(CAST(Q_000_T_001.ID AS REF(Reference29)) AS REF(Reference29)).Description
    FROM
    Reference29 Q_000_T_001
    WHERE
    ((((((((((((SUBSTRING(Q_000_T_001.Fld387, 1, 1) = " ") OR (SUBSTRING(Q_000_T_001.Fld387, 2, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 3, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 4, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 5, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 6, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 7, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 8, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 9, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 10, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 11, 1) = " ")) OR (SUBSTRING(Q_000_T_001.Fld387, 12, 1) = " "))

    Ответы: (15)
  12. (8)вот и я о том же. На числа проверять ок. А пробелы то нафига искать?

    Ответы: (12) (14)
  13. (11) проблема с выгрузкой в ЕБО

    Ответы: (13)
  14. (12) а с чем связана проблема?

  15. (11) Ну это он хочет старые косяки исправить...

  16. (10) и интересно 1С скобочки расставил, не доверяет скулю в интерпретации условия ИЛИ :)

или зарегистрируйтесь чтобы ответить!