Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Запрос со сравнением строк неверно работает
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток всем! Подскажите плиз. Есть такой запрос: Select v_crinvoice.id_n, v_crinvoice.numb_in, v_crinvoice.date_in, v_crinvoice.lname, v_crinvoice.custname, v_crinvoice.address,; v_crinvoice.cashdate,; v_crcash.amount_cash as amount, v_crinvoice.d_amount; From v_crinvoice, v_crcash; Where (v_crcash.numb_in = v_crinvoice.numb_in) and; (substr(v_crcash.id_n,1,2)=substr(v_crinvoice.id_n,1,2)); order by v_crinvoice.id_n; Into cursor temp выводится пустой, хотя я точно знаю, что по этим условиям записи должны отбираться. Поскольку я пробовала в цикле по этим таблицам использовать такие же условия, и они выполняются. Есть такая установка SET ANSI ON/OFF, вот если я выставляю ON, то вышеприведённый запрос отбирает записи. Не пойму почему эта установка в данном случае имеет значение, ведь я сравниваю всего два первых символа полей v_crcash.id_n и v_crinvoice.id_n. Мне необходимо, чтобы запрос работал и при установке SET ANSI OFF, как это сделать. Спасибо! С уважением, Юля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 14:17 |
|
||
|
Запрос со сравнением строк неверно работает
|
|||
|---|---|---|---|
|
#18+
А вы попробуйте перед выполнением запроса сохранять текущую установку set, а после восстанавливать Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 14:32 |
|
||
|
Запрос со сравнением строк неверно работает
|
|||
|---|---|---|---|
|
#18+
Для справки: Сравнение символьных строк внутри команды Select-SQL зависит от настройки SET ANSI и несколько отличается от логики сравнения в "обычных" командах. -) В отличии от "обычных" команд положение сравниваемых выражений (слева или справа от символа сравнения) роли не играет -) При настройке SET ANSI OFF сравнение идет до истечения символов в самом коротком выражении (при этом не важно слева оно или справа). Поэтому наличие концевых пробелов особой роли не играет. Более принципиально наличие ведущих пробелов. При настройке SET ANSI OFF внутри Select-SQL "АВАНГАРДНАЯ" = "АВАНГАРДНАЯ"+Space(10) "АВАНГАРДНАЯ" = "АВАНГАРД" "АВАНГАРДНАЯ" = "АВАНГАРДНАЯ УЛИЦА" вернет .T. во всех 3 случаях. Т.е. такие записи попадут в выборку. -) При настройке SET ANSI ON (значение по умолчанию) более короткое выражение автоматически дополняется пробелами для того, чтобы уровняться по длине с более длинным. После чего вычисляется результат сравнения При настройке SET ANSI ON внутри Select-SQL "АВАНГАРДНАЯ" = "АВАНГАРДНАЯ"+Space(10) "АВАНГАРДНАЯ" = "АВАНГАРД" "АВАНГАРДНАЯ" = "АВАНГАРДНАЯ УЛИЦА" вернет .T. только в первом случае. Все остальные сравнения вернут .F. и не попадут в итоговую выборку. Кроме того, использование оператора тождественного равенства (два символа равно подряд) равнозначно применению к текущему сравнению правил сравнения используемых при настройке SET ANSI ON вне зависимости от текущей настройки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 14:44 |
|
||
|
Запрос со сравнением строк неверно работает
|
|||
|---|---|---|---|
|
#18+
Hi Yuliya_g! Вместо SUBSTR используй PADR(поле, 2) - он не только "дополняет", но и "усекает" поле. А в остальном - подумай внимательно над тем что написал Владимир и сравни со своей ситуацией. Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2005, 02:49 |
|
||
|
|

start [/forum/topic.php?fid=41&gotonew=1&tid=1595013]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
13ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 463ms |

| 0 / 0 |
