|   |   | 
| 
 | Запрос SELECT не выбирает часть данных с условием | ☑ | ||
|---|---|---|---|---|
| 0
    
        Corvax46 01.12.14✎ 17:09 | 
        MS SQL 2005 SP4 
 Есть запрос: SELECT Field1, Field2, Field3, Field4 FROM Table1 Данные выбираются отлично. Делаю запрос с условием: SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='TextValue' В результате запроса записей нет. Хотя в запросе без условия такие записи есть. Значение для условия копировал. | |||
| 1
    
        ДенисЧ 01.12.14✎ 17:10 | 
        Условие не подходит. Ваш Кэп     | |||
| 2
    
        Wobland 01.12.14✎ 17:11 | 
        бывает     | |||
| 3
    
        Wobland 01.12.14✎ 17:11 | 
        я бы очки сменил     | |||
| 4
    
        pessok 01.12.14✎ 17:12 | 
        вероятно у тебя таки в полях то без тримов записи     | |||
| 5
    
        Corvax46 01.12.14✎ 17:13 | 
        без тримов тоже пробовал, не выбирает. Беру любую другую запись, пашет... на части - нет. Около 50 записей из 25000 приблизительно     | |||
| 6
    
        Ненавижу 1С гуру 01.12.14✎ 17:17 | 
        попробуй так:
 WHERE Field3 LIKE '%TextValue%' | |||
| 7
    
        pessok 01.12.14✎ 17:17 | 
        тогда проверяй "с" и "c" итп.     | |||
| 8
    
        Wobland 01.12.14✎ 17:18 | 
        (6) "TextValueTextValue" попадёт. что несколько не согласуется с (0)     | |||
| 9
    
        pessok 01.12.14✎ 17:19 | 
        +(7) я помню много секса при загрузке данных из экселя, когда добрые кадровички копипастили данные, а ты в фамилиях откуда-то появлялась латиница     | |||
| 10
    
        Corvax46 01.12.14✎ 17:24 | 
        (6) LIKE не помог
 (9) значемние для условия - строка, но используются только цифры (отбор по штрих-коду) | |||
| 11
    
        rsv 01.12.14✎ 17:26 | 
        (10) Нуууу занчится добавить UPPER и.... все символы принудительно на аглицкий патамушта в таблице значение TextValue могут быть символы и на русском     | |||
| 12
    
        pessok 01.12.14✎ 17:27 | 
        (10) ну так с этого и надо было начинать...
 колонка в таблице какой тип имеет? | |||
| 13
    
        Гёдза 01.12.14✎ 17:29 | 
        Регистр совпадает?     | |||
| 14
    
        Гёдза 01.12.14✎ 17:29 | 
        Какой collation?     | |||
| 15
    
        rsv 01.12.14✎ 17:30 | 
        т.е. по хорошему должна быть временная (таблица Table1 ) где  поле  Field3 должно быть уже подготовленным.     | |||
| 16
    
        Corvax46 01.12.14✎ 17:36 | 
        (11) в TextValue только цифры :-(     | |||
| 17
    
        pessok 01.12.14✎ 17:40 | 
        (16) ты не прочитал (12)
 WHERE LTrim(RTrim(Field3))='TextValue' как бы намекает, что ты отдаешь ему строку, а в таблице у тебя числа. а теперь вспомни как, например, эксель работает со значениями типа '100200300000' | |||
| 18
    
        Corvax46 01.12.14✎ 17:42 | 
        чар25, не нулл     | |||
| 19
    
        pessok 01.12.14✎ 17:43 | 
        (18) а зачем хранить числовые данные в char?     | |||
| 20
    
        Corvax46 01.12.14✎ 17:45 | 
        (19) База 7.7 на скуле
 Это справочник ШК, поле наименование | |||
| 21
    
        pessok 01.12.14✎ 17:48 | 
        (20) ясно. ну тут тогда придется еще как-то проверять на возможные символы переноса строк и нерастяжимого пробела...
 для начала попробуй выполнить запрос без фильтра, скопировать значение поля, которое потом надо отобрать, вставить его в where. Если и так не отберет, то хз. Если отберет, значит реально какие-то кривые символы | |||
| 22
    
        Ёпрст гуру 01.12.14✎ 17:49 | 
        если лайк не помог - то либо передаешь в условие хрень, либо в поле нет такого значения, усё.     | |||
| 23
    
        SUA 01.12.14✎ 18:05 | 
        в 7.7 LIKE должен работать     | |||
| 24
    
        Corvax46 01.12.14✎ 18:10 | 
        (21) копипаст в условии не отобрал
 Помогает перезапись справочника интерактивная. | |||
| 25
    
        DS 01.12.14✎ 18:13 | 
        (24) Переиндексация таблицы?     | |||
| 26
    
        Corvax46 01.12.14✎ 18:19 | 
        Переиндексация в плановом задании стоит каждую ночь. Выгрузка загрузка не помогла. Причём программная перезапись справочника ШК не помогает то же     | |||
| 27
    
        КонецЦикла 01.12.14✎ 18:29 | 
        Зачем лтрим, ртрим
 Наведи порядок в данных, блеать | |||
| 28
    
        Jaap Vduul 01.12.14✎ 18:34 | 
        Скорее всего, наличие спец. символов.Скорее всего, наличие спец. символов.
 select cast(Field3 as varbinary(max)) и проверяй, что за символы. | |||
| 29
    
        Sj 01.12.14✎ 18:37 | 
        Вот так делай     | |||
| 30
    
        Sj 01.12.14✎ 18:37 | 
        SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='TextValu' 
 SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='TextVal' SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='TextVal' и смотри, когда появится результат | |||
| 31
    
        Jaap Vduul 01.12.14✎ 18:43 | 
        (30)
 Никогда? | |||
| 32
    
        Corvax46 01.12.14✎ 18:43 | 
        (28) прошу прощения, не понял задумку
 (30) нет результата | |||
| 33
    
        Sj 01.12.14✎ 18:45 | 
        SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='TextVa' 
 SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='TextV' SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='Text' SELECT Field1, Field2, Field3, Field4 FROM Table1 WHERE LTrim(RTrim(Field3))='Tex' ? | |||
| 34
    
        Sj 01.12.14✎ 18:48 | 
        Left(Field3,3)='Tex'     | |||
| 35
    
        Sj 01.12.14✎ 18:48 | 
        чот тупанул...     | |||
| 36
    
        Sj 01.12.14✎ 18:48 | 
        Left(Field3,4)='Text'     | |||
| 37
    
        Corvax46 01.12.14✎ 18:51 | 
        О как...
 SELECT [ROW_ID] ,[ID] ,[CODE] ,[DESCR] ,[PARENTEXT] ,[ISMARK] ,[VERSTAMP] ,[SP47585] FROM [danas].[dbo].[SC47587] WHERE LEFT(LTRIM(RTRIM([DESCR])),13) = '3800024935466' Сработало | |||
| 38
    
        Jaap Vduul 01.12.14✎ 18:52 | 
        (32)
 Визуально строки '1234567890' и '1234567890' + char(10) выглядят одинаково. Преобразование к varbinary показывает нам коды отдельных символов - среди них не должно быть, например, 0D, 0A Коды цифровых символов с 30 до 39. | |||
| 39
    
        Ёпрст гуру 01.12.14✎ 18:55 | 
        (37) ну давай, огласи результат этого:
 SELECT * FROM [danas].[dbo].[SC47587] WHERE DESCR like '%3800024935466%' | |||
| 40
    
        Ёпрст гуру 01.12.14✎ 18:56 | 
        и потом не говори сказки, что лайк у тебя не работает     | |||
| 41
    
        Corvax46 01.12.14✎ 19:09 | 
        (38) спасибо, сейчас гляну     | |||
| 42
    
        Corvax46 01.12.14✎ 19:15 | 
        (38) большое спасибо.... 0D и 0A присутствуют...     | |||
| 43
    
        Жан Пердежон 01.12.14✎ 19:24 | 
        Непечатаемые символы! Кто бы мог подумать...     | |||
| 44
    
        trad 01.12.14✎ 20:17 | 
        (42) при этом like (39) должен работать     | |||
| 45
    
        Corvax46 02.12.14✎ 09:41 | 
        (44) Спасибо, работает.     | |||
| 46
    
        DrZombi гуру 03.12.14✎ 06:48 | 
        (0) Пробелы есть двух видов, по году 32 и по коду 160
 http://easywebscripts.net/html/ascii.php Если ты этого не видишь, то не значит, что его там нет ;) | |||
| 47
    
        DrZombi гуру 03.12.14✎ 06:48 | 
        +(46) году  - Коду     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |