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で解いています。