はじめに

これは FizzBuzz Advent Calendar 2017 13 日目の記事となります。
Firebird SQL のストアドプロシージャで FizzBuzz を書いてみます。

コード

適当な DB を用意し、ストアドプロシージャを書きます。

SET TERM ^;

CREATE PROCEDURE FizzBuzz
RETURNS
  (Result VARCHAR(10))
AS
  DECLARE VARIABLE I INTEGER = 0;
BEGIN
  WHILE (I < 100) DO
    BEGIN
      I = I + 1;
      IF ((mod(I, 3) = 0) and (mod(I, 5) = 0)) THEN
        Result = 'Fizz Buzz';
      ELSE
        BEGIN
          IF (mod(I, 3) = 0) THEN
            Result = 'Fizz';
          ELSE
            BEGIN
              IF (mod(I, 5) = 0) THEN
                Result = 'Buzz';
              ELSE
                Result = CAST(I as VARCHAR(10));
            END
        END
      SUSPEND;
    END
END ^

SET TERM ;^

次に Select 文を実行します。

Select * from FizzBuzz;

するとこうなります。

image.png

多分 Interbase でも同じコードで OK だと思います。

おわりに

ブラッシュアップしてくれると嬉しいな > Firebird の偉い人。
他の DB のストアドプロシージャではどうなるのかも知りたかったり...。

Firebird Advent Calendar 2017 が開催されていますので興味のあるかたはどうぞ!

See Also: