| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Firebird, Interbase > substring в FireBird |
| Автор: holodnaya 15.11.2009, 23:55 | ||||
| Добрый вечер! Работаю c FireBird-2.1.3. В запросе мне нужно выбрать фамилию и инициалы, пишу следующее
при попытке выполнить запрос, вижу следующее сообщение
Вобщем, ругается именно на функцию substring. Как мне правильно напистаь запрос? |
| Автор: Gluttton 16.11.2009, 00:03 | ||
Попробуй так:
http://www.firebirdsql.su/doku.php?id=substring |
| Автор: Данкинг 16.11.2009, 00:32 | ||
Gluttton, да, верно, сейчас проверил - работает:
|
| Автор: holodnaya 16.11.2009, 10:31 |
| Спасибо! Вечером приду домой, перепишу. И спасибо за ссылку, будет где посмотреть и другие операторы |
| Автор: Akella 16.11.2009, 12:30 |
а где ты вычитала такой синтаксис? |
| Автор: holodnaya 18.11.2009, 00:16 |
В книжке "FireBird 1.5 быстрый старт" (для более поздней версии подобной книжки у меня нет) в разделел FireBird SQL написано: "FireBird наиболее строгим образом соответсвует стандарту SQL" (по сравнению с другими СУБД). И так как больше никаких описаний я не встречала про оператор sub и substring кроме как указания в скобках (строка, начало_позиции, кол-во_символов), то решила, что это и есть стандартный (неизмененный оператор). Но мои предположения оказались не совсем верными. Сейчас у меня есть ссылка на язык SQL, используемый именно в FireBird, буду разбираться. |
| Автор: holodnaya 18.11.2009, 00:38 | ||
А что это? И почему тогда в IBExoert при написании SQL - запроса он сам этот оператор подставляет? |
| Автор: Данкинг 18.11.2009, 00:54 |
Я вот затрудняюсь сказать, что такое Substring применительно к FB. |
| Автор: holodnaya 18.11.2009, 01:17 | ||
А что тогда? И почему в IBExpert автоматически подставляется при написании SQL запроса в SQL Editor? |
| Автор: Akella 18.11.2009, 10:20 | ||||||
Зато есть Firebird 2.0 Release Notes Firebird 2.1 Release Notes и т.д. Firebird SUBSTRING http://firebirdsql.su/doku.php?id=substring Есть ещё документация %firebird%\doc\sql.extensions\README.builtin_functions.txt %firebird% - папка, где установлен firebird sql сервер
Правильно, substring - это встроенная функция. Наверное, не языка, а sql-сервера. Добавлено через 10 минут и 22 секунды
Потому что разработчики постарались, чтобы тебе и мне и всем было легче. |
| Автор: holodnaya 18.11.2009, 12:37 | ||
Я понимаю назначение автоматической подстановки. Смысл вопрос был немножко другой: если это не SQL-функция, то почему подставляется в редакторе SQL запроса. |
| Автор: Данкинг 18.11.2009, 13:07 | ||
Во-первых, а где ей ещё подставляться-то? Во-вторых, потому что ты эту самую функцию sql-сервера включаешь в запрос. |
| Автор: holodnaya 18.11.2009, 14:26 |
| Данкинг, я поняла насчет функций ) Спасибо Ещё вопрос. Если в запросе выбираешь текстовое поле, то под него выделяется столько символов, сколько изначально зарезервировано, что при выводе результатов завпроса в какой-нибудь отчет не очень удобно. Например, в Pole1 char(20), а на самом деле туда записана фамилия из 10 символов и при конкатенации строк получаются очень большие пробелы. Какую функцию (оператор) можно использовать в этом случае? |
| Автор: Данкинг 18.11.2009, 14:47 |
trim ? |
| Автор: Akella 18.11.2009, 18:02 |
всегда используй varchar |
| Автор: Deniz 19.11.2009, 06:40 |
| Плюсов от использования char, по сравнению с varchar нет. |
| Автор: holodnaya 21.11.2009, 22:36 | ||
Правда trim Почему-то в прошлый раз она не сработала |