powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / [Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
14 сообщений из 14, страница 1 из 1
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38296491
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Delphi имеется DBF таблица.

имеется таблица с символьным полем NUM, где хранятся номера. номера могут содержать и буквы.

NUM
1. Р-25
2. 125-Н
3. 3257
4. П-25/12

Как с помощью SQL запроса найти строки имеющие в поле NUM число 25.

Результат должен быть
NUM
1. Р-25
4. П-25/12
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38296539
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В MSSQL этот запрос я составил следующим образом -

SELECT *
FROM table1
where
(num LIKE N'%[^0-9]25[^0-9]%')
or(num LIKE N'%[^0-9]25')
or(num LIKE N'25[^0-9]%')
or(num LIKE N'25')

В Local SQL BDE это не работает но и не выдает ошибку.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38296657
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AVRob, Regexp с жадным поиском который должен собрать самую левую последовательность цифр Digits.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38296671
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, а как regexp использовать в SQL запросе?
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38296679
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AVRobmayton, а как regexp использовать в SQL запросе?
На этот вопрос невозможно дать ответ зная только тип драйвера
BDE-LocalSQL. Мало информации.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38296691
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton, Какая еще нужна информация ?
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38297550
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AVRob, похоже, увы...

Local SQL, Like :

Indicates the similarity of one value as compared to another.

value [NOT] LIKE [substitution_char] comparison_value [substitution_char] [ESCAPE escape_char]

Description

Use the LIKE comparison predicate to filter a table based on the similarity of a column value to a comparison value. Use of substitution characters allows the comparison to be based on the whole column value or just a portion.

SELECT *

FROM customer

WHERE (company LIKE "Adventure Undersea")

The wildcard substitution character ("%") may be used in the comparison to represent an unknown number of characters. LIKE returns a TRUE when the portion of the column value matches that portion of the comparison value not corresponding to the position of the wildcard character. The wildcard character can appear at the beginning, middle, or end of the comparison value (or multiple combinations of these positions). For example, the statement below retrieves rows where the column value begins with "A" and is followed by any number of any characters. Matching values could include "Action Club" and "Adventure Undersea", but not "Blue Sports".

SELECT *

FROM customer

WHERE (company LIKE "A%")

The single-character substitution character ("_") may be used in the comparison to represent a single character. LIKE returns a TRUE when the portion of the column value matches that portion of the comparison value not corresponding to the position of the single-character substitution character. The single-character substitution character can appear at the beginning, middle, or end of the comparison value (or multiple combinations of these positions). Use one single-character substitution character for each character to be wild in the filter pattern For example, the statement below retrieves rows where the column value begins with "b" ends with "n", with one character of any value between. Matching values could include "bin" and "ban", but not "barn".

SELECT words

FROM dictionary

WHERE (words LIKE "b_n")

Use NOT to return the converse of a LIKE comparison.

Use ESCAPE when the wildcard character "%" or "_" appear as data in the column. The ESCAPE keyword designates an escape character. In the comparison value for the LIKE predicate, the character that follows the escape character is treated as a data character and not a wildcard character. Other wildcard characters in the comparison value are unaffected.

In the example below, the "^" character is designated as the escape character. In the comparison value for the LIKE predicate ("%10^%%"), the "%" that immediately follows the escape character is treated as data in the PercentValue. This allows filtering based on the string "10%".

SELECT *

FROM Sales

WHERE (PercentValue LIKE "%10^%%" ESCAPE "^")

LIKE can be used only with CHAR or compatible data types. If one value is of an incompatible data type, convert that value with the CAST function to a compatible data type. The comparison performed by the LIKE predicate is case-sensitive.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412162
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решил это следующим громоздким запросом

SELECT * FROM table1 WHERE
(num LIKE '%15%')and(Not(
(num LIKE "%0150%")or(num LIKE "%015%")or(num LIKE "%150%")or(num LIKE "%0151%")or(num LIKE "%151%")or(num LIKE "%0152%")or(num LIKE "%152%")or(num LIKE "%0153%")or(num LIKE "%153%")or(num LIKE "%0154%")or(num LIKE "%154%")or(num LIKE "%0155%")or(num LIKE "%155%")or(num LIKE "%0156%")or(num LIKE "%156%")or(num LIKE "%0157%")or(num LIKE "%157%")or(num LIKE "%0158%")or(num LIKE "%158%")or(num LIKE "%0159%")or(num LIKE "%159%")or(num LIKE "%1150%")or(num LIKE "%115%")or(num LIKE "%1151%")or(num LIKE "%1152%")or(num LIKE "%1153%")or(num LIKE "%1154%")or(num LIKE "%1155%")or(num LIKE "%1156%")or(num LIKE "%1157%")or(num LIKE "%1158%")or(num LIKE "%1159%")or(num LIKE "%2150%")or(num LIKE "%215%")or(num LIKE "%2151%")or(num LIKE "%2152%")or(num LIKE "%2153%")or(num LIKE "%2154%")or(num LIKE "%2155%")or(num LIKE "%2156%")or(num LIKE "%2157%")or(num LIKE "%2158%")or(num LIKE "%2159%")or(num LIKE "%3150%")or(num LIKE "%315%")or(num LIKE "%3151%")or(num LIKE "%3152%")or(num LIKE "%3153%")or(num LIKE "%3154%")or(num LIKE "%3155%")or(num LIKE "%3156%")or(num LIKE "%3157%")or(num LIKE "%3158%")or(num LIKE "%3159%")or(num LIKE "%4150%")or(num LIKE "%415%")or(num LIKE "%4151%")or(num LIKE "%4152%")or(num LIKE "%4153%")or(num LIKE "%4154%")or(num LIKE "%4155%")or(num LIKE "%4156%")or(num LIKE "%4157%")or(num LIKE "%4158%")or(num LIKE "%4159%")or(num LIKE "%5150%")or(num LIKE "%515%")or(num LIKE "%5151%")or(num LIKE "%5152%")or(num LIKE "%5153%")or(num LIKE "%5154%")or(num LIKE "%5155%")or(num LIKE "%5156%")or(num LIKE "%5157%")or(num LIKE "%5158%")or(num LIKE "%5159%")or(num LIKE "%6150%")or(num LIKE "%615%")or(num LIKE "%6151%")or(num LIKE "%6152%")or(num LIKE "%6153%")or(num LIKE "%6154%")or(num LIKE "%6155%")or(num LIKE "%6156%")or(num LIKE "%6157%")or(num LIKE "%6158%")or(num LIKE "%6159%")or(num LIKE "%7150%")or(num LIKE "%715%")or(num LIKE "%7151%")or(num LIKE "%7152%")or(num LIKE "%7153%")or(num LIKE "%7154%")or(num LIKE "%7155%")or(num LIKE "%7156%")or(num LIKE "%7157%")or(num LIKE "%7158%")or(num LIKE "%7159%")or(num LIKE "%8150%")or(num LIKE "%815%")or(num LIKE "%8151%")or(num LIKE "%8152%")or(num LIKE "%8153%")or(num LIKE "%8154%")or(num LIKE "%8155%")or(num LIKE "%8156%")or(num LIKE "%8157%")or(num LIKE "%8158%")or(num LIKE "%8159%")or(num LIKE "%9150%")or(num LIKE "%915%")or(num LIKE "%9151%")or(num LIKE "%9152%")or(num LIKE "%9153%")or(num LIKE "%9154%")or(num LIKE "%9155%")or(num LIKE "%9156%")or(num LIKE "%9157%")or(num LIKE "%9158%")or(num LIKE "%9159%")))

Спасибо всем.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412190
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AVRob, с точки зрения индуизма ты просадил себе карму на 100500 пунктов вниз.

Представляешь себе изумление того кто будет ревьюв делать твоего кода или
возьмёт в аутсорс?
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412200
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А этого запроса в исходном коде конечно нет.

Запрос создается в For цикле для заданного номера, что занимает очень мало места и вполне понятна.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412203
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос получен с помощью SQL.SaveToFile

C точки зрения индуизма хоть немного прибавил себе карму ? .
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412251
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Это чугунный лапоть. Я не знаю какой оптимизатор стоит по ту сторону BDE. Но думаю
что он стонет и плачет когда фетчит строки. Греет мегафлопами атмосферу и сжиает нефть
и газ, приближая конец чел. цивилизации. И мне от этого печаль.

А тебе как?
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412275
AVRob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Вместо того, чтоб скорбить вместе с BDE, лучше бы подумал над поставленным вопросом.
Если не можешь дать ответ, сиди и молчи, не надо время отнимать.

Найденное решение - пока единственное для Local SQL BDE.

Для MS SQL я приводил соответствующий запрос вместе с постановкой вопроса, который не подходит для BDE.
...
Рейтинг: 0 / 0
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
    #38412854
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня целый пакет решений для тебя начиная от изменения ТЗ и частичного
переноса логики LIKE на сторону клиента и заканчивая постановкой вопроса
о переаттестации ваших специалистов.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / [Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]