interbase kennt von hause aus sowas nicht,
muesste man in einer SP dort machen
die SP in interbase wuerde etwa so aussehen
Code:
CREATE PROCEDURE GET_FIRST_VALUE_BLOCKENDE (
INPUT_VALUE INTEGER
)
RETURNS (
OUT_BLOCKANFANG INTEGER,
OUT_KENNUNG VARCHAR(10))
AS
DECLARE VARIABLE HA INTEGER;
DECLARE VARIABLE HB VARCHAR(10);
BEGIN
HA = -1;
HB = '';
OUT_BLOCKANFANG = -1;
OUT_KENNUNG = '';
FOR SELECT B.BLOCKANFANG, B.KENNUNG FROM
BLOCK B
WHERE (B.BLOCKENDE >= :INPUT_VALUE)
ORDER BY B.BLOCKANFANG
INTO :HA, :HB
DO
BEGIN
IF (:HA <> -1) THEN
OUT_BLOCKANFANG = :HA;
IF (:HB <> '') THEN
OUT_KENNUNG = :HB;
SUSPEND;
EXIT; // HIERDURCH NACH ERSTEN SATZ SP BEENDET
END
SUSPEND; // FUER DEN FALL DASS NICHTS GEFUNDEN WIRD
END
aber muss es unbedingt interbase sein, bei firebird wuerde es so gehen
select first 1 * from tabellenname
where ...