|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.07.2011, 09:16 | #1 |
Регистрация: 20.07.2011
Сообщений: 5
|
Запрос на выборку нерусских
Здравствуйте!
Есть названия книг, нужно выбрать все книги не на русском языке, при этом названия могут начинаться и с пробелов, и с кавычек, могут содержать как английские так и русские буквы. Но нужны только полностью нерусские! Помогите пожалуйста, голову сейчас сломаю. Заранее спасибо! |
20.07.2011, 09:34 | #2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
все что НЕ содержит русских букв == NOT содержит хотя бы одну русскую букву
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 20.07.2011 в 09:39. |
20.07.2011, 09:56 | #3 |
Регистрация: 20.07.2011
Сообщений: 5
|
это слишком длинно, можно как-то регулярными выражениями...
|
20.07.2011, 10:21 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
evg_m, вполне себе решение....
только: 1) если я не ошибаюсь, то оператор LIKE регистрочувствительный (поэтому надо проверять и большие и малые буквы .. or bookname LIKE '%Ф%' or bookname LIKE '%ф%' or ... или использовать функцию Upper() or Upper(bookname) LIKE '%Ф%' 2) запросец будет КРАЙНЕ малоэффективным в плане производительности! 3) в зависимости от используемой СУБД можно попытаться чуток упросить/убыстрить запрос (использовав специфические для данной СУБД функции...) Цитата:
дело в том, что в стандартном SQL нет регулярных выражений (ну, если не считать оператор LIKE)/// Последний раз редактировалось Serge_Bliznykov; 20.07.2011 в 10:24. |
|
21.07.2011, 07:53 | #5 |
Регистрация: 20.07.2011
Сообщений: 5
|
у меня oracle 10, запрос я уже написала с регулярными выражениями, оказалось проще простого))) кому интересно могу выложить, но все равно спасибо за помощь!
|
21.07.2011, 08:13 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
кстати, если не ошибаюсь, то регулярные выражения появились только в Oracle 10. но до этого подобные задачки можно было решить (ну лично я решал) с помощью функции TRANSLATE вот, например, запрос, который вернёт только те записи, в названии книг которых НЕТ НИ ОДНОЙ РУССКОЙ БУКВЫ: Код:
Последний раз редактировалось Serge_Bliznykov; 21.07.2011 в 08:58. |
|
21.07.2011, 12:09 | #7 |
Регистрация: 20.07.2011
Сообщений: 5
|
в девятом тоже были регулярные, мы в прошлом году обновлялись до десятки и до этого ими пользовались еще) а кстати это стиль такой или так надо, я вот допустим всем текстовым полям делаю lower(), а многие делают upper(). Это фишка такая? или просто кому как удобнее?
p.s. запрос мой: select t.* from vw_wp_sources_non_virtua t where regexp_like(lower(t.name),'[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]{1,}') |
21.07.2011, 13:20 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Цитата:
кстати, если это Вам нужно в реальной жизни и объёмы данных большие, может сравните эти два варианта по быстродействию?... (если объёмы в таблице не большие - то смысла нет, а вот если большие.... ) |
||
22.07.2011, 12:18 | #9 |
Регистрация: 20.07.2011
Сообщений: 5
|
сравнила запросы, выдают разные результаты, ваш запрос меньше строк выдает, пока не разбиралась почему, времени не хватает...но работают примерно одинаково по времени, если бы результат был одинаков)
|
22.07.2011, 12:39 | #10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос на выборку | ...Оленька... | SQL, базы данных | 1 | 20.12.2010 20:13 |
Запрос на выборку | pobedin | SQL, базы данных | 7 | 12.12.2010 19:16 |
С# Запрос на выборку | fobass | Общие вопросы .NET | 2 | 04.02.2010 14:26 |
Запрос на выборку Like | Agapov_stas | Microsoft Office Access | 3 | 02.12.2009 11:09 |
Запрос на выборку | Ruska882009 | Microsoft Office Access | 2 | 26.02.2009 20:39 |