|
|
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Существует такое поле в таблице (примерно). A 168 680 18 40 8H01 A 168 680 19 40 A 168 680 22 40 7D91 A 168 680 25 40 B1111 8 9 9 90 Нужно сделать выборку, чтобы при вводе в программе строки для поиска пробелы не учитывались, т.е например, запрос для первой строки должен выглядеть так A16868018408H01. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 10:39:46 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 10:42:27 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Прошу прошения, что сразу не сказал, но запрос мне нужен на SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 10:46:02 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Select Replace(Поле, " ", "") From MyTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 10:53:38 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
bobanПрошу прошения, что сразу не сказал, но запрос мне нужен на SQL. И что? Replace() и там работает! И еще. Не плохо бы указывать версии используемого ПО! (И ПРАВИЛА читать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:40:02 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
SELECT Replace(PTNRDRU, " ", "") FROM PLDATA WHERE PTNRDRU = 'A0002642374'; при таком запросе я ничего не получаю. Мне нужно найти вот такое число: A 000 264 23 74. А в запросе нужно чтобы я писал A0002642374. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 12:18:01 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
SELECT Replace(PTNRDRU, " ", "") FROM PLDATA WHERE PTNRDRU = 'A 000 264 23 74'; Такой запрос мне уже не нужен, мне нужно запрашивать без пробелов. А не удалять пробелы просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 12:19:49 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
А голова тебе для чего дадена? Чтобы шапку носить? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 12:30:49 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
я так делал. Только он мне пишет: DaimlerChrysler AG - Price list 58 Несоответствие типов данных в выражении условия отбора. Поле типа строка. В чем проблемма? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 12:38:15 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Причем на обычной тестовой базе этот запрос работает. А на базе с 500 000 позиций нифига. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:03:04 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM PLDATA WHERE Replace(nz(PTNRDRU), " ", "") = 'A0002642374'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:13:29 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
GEO, ДРУГ, СПАСИБО. А что за фишка с nz? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:35:51 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
bobanGEO, ДРУГ, СПАСИБО. А что за фишка с nz? заменяет NULL на значение после зпт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:07:26 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
А под DAO этот запрос не работает. Я этот запрос организую в 1С через DAO, пишет нет такой функции. (((((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:22:30 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Читай соседний топик http://www.sql.ru/forum/actualthread.aspx?tid=121982 PS: сегодняшний день проходит под лозунгом "NZ в массы - или как работать с Null не из Акса" Мля! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:34:52 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
paparome вообщето я спросил про DAO, а не про ADO. Так что будь по точнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:51:16 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
в соседнем топике также используется способ через iif ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 15:29:28 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
А куда вставлять это в моем случае? IIF(f IS NULL,0,f) ? F? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:24:19 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
NZ(f,0) == IIF(f IS NULL,0,f) NZ(f,'нуль') == IIF(f IS NULL,'нуль',f) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:40:08 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
у меня не определяется функция Replace, а не NZ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:45:41 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
bobanу меня не определяется функция Replace, а не NZ. Э-э дарагой, может я плохо читать? Ты версии использованного ПО писал? Не писал :( Тогды напиши - вдруг у тебя и не есть эта грамотная функция! Тогды - ты ее на форуме поискать - она тут публиковалась, специально, для тех у кто нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 09:04:31 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
1C Предприятие 7.7 Access 2002 Короче в запросе пишет что функция REPLACE не определена. И еще, в самом Access долго запрос происходит. Может можно что то придумать. Запрос : SELECT * FROM PLDATA WHERE Replace(nz(PTNRDRU), " ", "") = 'A0002642374' на 500000 позиций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 09:55:27 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Может, добавить в табличку поле без пробелов, при редактировании-удалении в него писать, а потом по нему резать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 10:00:34 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
оболочка программы - 1С. В программе организован доступ к прайсам сторонних организаций. В большинстве случаев - это Access. Выбираются строки. А запрос в 1С построен через SQL под DAO. Вот такие дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 10:09:48 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
Пол ляма записей при отборе по строке + с использованием функции - ни какие индексы не помогут!!! Меняй понятие - "долго выполняется" И всех убеждай, что это им еще повезло!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 12:03:51 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
при отборе по строке просто, проблемм нет, последняя запись за 1,5 секунда, а с функцией косяк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 12:29:24 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
еще 2 решения: если вероятных вхождений пробелов немного - динамически компоновать запрос с условием WHERE PTNRDRU = In('A 000 264 23 74', 'A 000 264 2374',....). Но если пробелы могут встречаться где угодно - получим (на N позициях) ~ 2**N вариантов - выйдем за допустимую длину SQL строки (~N*2**N > 32 768 символов - уже при ~28-29 позициях). Если возможная строка длиннее 29 символов то: вместо строки IN() можно использовать специально созданную таблицу с одним полем (индексированным). Накидывать туда до ~100000 записей не так уж долго. А выборку по INNER JOIN ON t1.[индексированное поле]=tmp.[индексированное поле] будет делать много быстрее, чем Replace () по 5*10**5 записей. _______ Реализацию еще одной идеи я так и не придумал - надо вставить в Like 'xxxx' список [], включающий и пробел и пустую строку. Кажется это невозможно. Есть вариант идеи - провести первичный отбор, используя * между всеми значащими символами строки отбора (т.е. ~ LIKE 'A*0*0*0*2*6*4*2*3*7*4') (поскольку маска начинается не со *, то при этом индекс все-же будет использоваться), а уж на результат (выборку, которая заведомо будет много меньше всей таблицы) подействовать реплайсом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 13:00:45 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
В первом случае пишет ошибку синтаксиса, если я правильно понял, это должно было выглядеть так: SELECT * FROM PLDATA WHERE PTNRDRU = In('A0002642374'); пишет : ошибка синтаксиса(пропушен оператор, указывает на In) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 14:34:30 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
авторWHERE PTNRDRU = In('A0002642374'); тьфу, плиинннн. оп-пиисаался вот эт-тто "раавноо" таам лиишнее а выглядеть должно так: WHERE PTNRDRU IN(а тут перебор всех возможных случаев ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 15:20:43 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
этот вариант не пойдет, я не знаю изначально как будет у меня разбит номер, мне нужно ввести номер без пробелов а получить из таблицы с пробелами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 15:44:49 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
bobanэтот вариант не пойдет, я не знаю изначально как будет у меня разбит номер, мне нужно ввести номер без пробелов а получить из таблицы с пробелами. а какого хера ты мозги канифолишь? тебе же написали Код: plaintext или полагашь, что там от нехер делать буковки понатыканы, а за ними ни хера не стоит? репу-то сморщь чутка. Тебе же сказали, (етить тя через коромысло) Код: plaintext А если деять ни хера не хошь/не мож - гуляйнах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 16:24:06 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
assa Какой ты крутой пацан, только не хрена помоему не шаришь. Языком молоть любой может, а вот если бы ты конкретней говорил, людям бы жить легче было. Деятель, зато слово нах знает. ХА ХА.Понты кинуть любой может, только ничего из твоих слов не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 16:34:11 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
авторлюдям бы жить легче было а вот с этим как раз и не сюда. С этим как раз - нах. С такими запросами - груши околачивать, а не SQL выражовывания писать. вумник, ля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 16:59:25 |
|
||
|
Поиск строки
|
|||
|---|---|---|---|
|
#18+
походя всплыло "чисто" SQL-ное решение комбинаторной задачи 1. Вспомогательная таблица l, пустая. 1 поле t - текст, 1 символ. 2. вводишь 2 строки: INSERT INTO list ( t ) VALUES(' '); INSERT INTO list ( t ) VALUES(''); для строки 'A0002642374' составляешь запрос вида: Код: plaintext 1. 2. 3. 4. 5. а с ним сделай: Код: plaintext 1. 2. (в общем виде - замени q на параметрический (используя mid([параметр], позиция,1) вместо буковок) Но, думается, решение скорее факультативное, чем имеющее прикладное значение. ЗЫ что-й то я надысь на редкость наврал по количеству позиций. 20 позиций дают уже более лимона вариантов. а 32к вариантов ~ всего-то 10+5 позиций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2004, 16:22:15 |
|
||
|
|

start [/forum/topic.php?all=1&fid=45&tid=1671747]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 377ms |

| 0 / 0 |
