0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

100日でSQLの達人になる@LeetCode! Day60 <CREATE FUNCTION ユーザー定義関数>

Posted at

177. Nth Highest Salary (問題レベル: Medium)課金不要

今日の問題はこれ。
N番目に高いSalaryを表示するユーザー定義関数を作成するという問題。
久しぶりにLeetCodeに戻ってきました。

CREATE FUNCTION

まずは、CREATE FUNCTIONについて学びます。

SQL
CREATE FUNCTION ユーザー定義関数名 (引数名)
 RETURNS INT AS
 BEGIN
   -- 実際のプログラムの中身
   RETURN (関数の結果をここで返す)
 END

引数は,で区切って複数の引数も可能。二行目のRETURNS の後には関数が返す結果のデータタイプを記載する。

最終的に提出した回答はこちら。

SQL
CREATE FUNCTION getNthHighestSalary(@N INT) RETURNS INT AS
BEGIN
    RETURN (
        SELECT DISTINCT salary FROM employee
         ORDER BY salary DESC OFFSET @N-1 ROWS FETCH NEXT 1 ROWS ONLY
    );
END

ポイントはCREATE FUNCTIONでユーザー定義関数を使うとした。

CREATE FUNCTIONはテーブルを結果に出力することも可能だが、今回は値を返す関数のみを学習しました。

  • LeetCodeの問題は、MS SQL Serverで解いています。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?