読者です 読者をやめる 読者になる 読者になる

1 から 10 までの自然数の合計を出すプログラムを SELECT 文のみを使って書きなさい

ただし入力は始点と終点のみとし、他の数値は適当に生成すること。

元ネタ:1から10までの自然数の合計を出すプログラムをプリプロセッサを使って書きなさい - 危ないRiSKのブログ

WITH
  Input(from_, to_) AS (SELECT 1, 10)
, Inputs(i, n) AS (
    SELECT
        from_
      , to_
    FROM
        Input
    UNION ALL
    SELECT
        i + 1
      , n - 1
    FROM
        Inputs
    WHERE
        n <> 1
  )
SELECT SUM(i) FROM Inputs

合計の方じゃなくて、入力を生成するために再帰 (ループ) が必要という・・・


でもほら、よく見ると Haskell のコードと似てませんか?

sum [1..10]

うん、同じだね。同じだ。同じだ・・・