Interbase - left() v SQL
4 отговора
134 прегледа
Interbase - left() v SQL
Rabotja s Interbase bazi danni prez EMS Interbase/Firebird Manager.
Problem4eto mi e 4e kogato se opitam da izgradja SQL zajavka s functijata left nisto ne stava. Primer:
select cash.code,cash.money
from cash,recitems
where cash.code=left(recitems.stock,4);
Vrasta se greshka 4e funkcijata left e nepoznata, a v sastoto vreme kogato pisha zajavkata mi se pojavjava help menuto na zapazenite SQL dumi, kadeto ja ima.
Njakoi ima li ideja kakvo stava????
Kakva druga SQL funcija da izpolzvam za 4ast ot string???
Problem4eto mi e 4e kogato se opitam da izgradja SQL zajavka s functijata left nisto ne stava. Primer:
select cash.code,cash.money
from cash,recitems
where cash.code=left(recitems.stock,4);
Vrasta se greshka 4e funkcijata left e nepoznata, a v sastoto vreme kogato pisha zajavkata mi se pojavjava help menuto na zapazenite SQL dumi, kadeto ja ima.
Njakoi ima li ideja kakvo stava????
Kakva druga SQL funcija da izpolzvam za 4ast ot string???
Re: Interbase - left() v SQL
Ползвай starting with
Left е запазена дума от left join
Направи си труда в българските форуми да пишеш на български

Left е запазена дума от left join
Направи си труда в българските форуми да пишеш на български
Re: Interbase - left() v SQL
Вярно, че с друг сървър, а не с Interbase, използвам POS.
... where POS (... , ... , ...) = 1 или > 1
Не съм изследвал за бързодействие, защото съм го използвал при малки бази.
ЧеФо
... where POS (... , ... , ...) = 1 или > 1
Не съм изследвал за бързодействие, защото съм го използвал при малки бази.
ЧеФо
Re: Interbase - left() v SQL
В Interbase няма left. Ползвай substr :
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING (80),
SMALLINT,
SMALLINT
RETURNS CSTRING (80) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
select cash.code,cash.money
from cash,recitems
where cash.code=substr(recitems.stock,1,4);
Re: Interbase - left() v SQL
На IB/FB не е проблем да се използва, каквато си измислиш функция (UDF), както и по-долу е посочил killall (впрочем във FB 1.5, а мисля и в IB7 SUBSTR e вградена), но такава заявка няма шанс да използва индекси.
Аз бих написал заявката:
select cash.code,cash.money
from cash,recitems
where recitems.stock starting with cash.code;

Аз бих написал заявката:
select cash.code,cash.money
from cash,recitems
where recitems.stock starting with cash.code;