|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
В Delphi имеется DBF таблица. имеется таблица с символьным полем NUM, где хранятся номера. номера могут содержать и буквы. NUM 1. Р-25 2. 125-Н 3. 3257 4. П-25/12 Как с помощью SQL запроса найти строки имеющие в поле NUM число 25. Результат должен быть NUM 1. Р-25 4. П-25/12 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 16:24 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
В 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 это не работает но и не выдает ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 16:47 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
AVRob, Regexp с жадным поиском который должен собрать самую левую последовательность цифр Digits. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 17:50 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
mayton, а как regexp использовать в SQL запросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 17:55 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
AVRobmayton, а как regexp использовать в SQL запросе? На этот вопрос невозможно дать ответ зная только тип драйвера BDE-LocalSQL. Мало информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 17:58 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
mayton, Какая еще нужна информация ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 18:01 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 11:26 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
решил это следующим громоздким запросом 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%"))) Спасибо всем. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 17:56 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
AVRob, с точки зрения индуизма ты просадил себе карму на 100500 пунктов вниз. Представляешь себе изумление того кто будет ревьюв делать твоего кода или возьмёт в аутсорс? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:10 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
А этого запроса в исходном коде конечно нет. Запрос создается в For цикле для заданного номера, что занимает очень мало места и вполне понятна. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:16 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
Запрос получен с помощью SQL.SaveToFile C точки зрения индуизма хоть немного прибавил себе карму ? . ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:20 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
Нет. Это чугунный лапоть. Я не знаю какой оптимизатор стоит по ту сторону BDE. Но думаю что он стонет и плачет когда фетчит строки. Греет мегафлопами атмосферу и сжиает нефть и газ, приближая конец чел. цивилизации. И мне от этого печаль. А тебе как? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 18:44 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
mayton, Вместо того, чтоб скорбить вместе с BDE, лучше бы подумал над поставленным вопросом. Если не можешь дать ответ, сиди и молчи, не надо время отнимать. Найденное решение - пока единственное для Local SQL BDE. Для MS SQL я приводил соответствующий запрос вместе с постановкой вопроса, который не подходит для BDE. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2013, 19:10 |
|
[Delphi-BDE-LocalSQL] Как с помощью SQL запроса найти конкретный номер
|
|||
---|---|---|---|
#18+
У меня целый пакет решений для тебя начиная от изменения ТЗ и частичного переноса логики LIKE на сторону клиента и заканчивая постановкой вопроса о переаттестации ваших специалистов. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2013, 12:28 |
|
|
start [/forum/topic.php?fid=56&fpage=6&tid=2015223]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 416ms |
0 / 0 |