创建sql函数,返回特定输入上方的行

时间:2018-06-14 10:38:24

标签: oracle plsql

我想创建一个sql函数,它将返回任何具有某个coulmn值的行,该值大于或等于用户输入的数字。 我正在使用PL / SQL开发人员,oracle sql。

例如,这是表格:

MyTable

id  name
5   Zack
4   David
3   Mike

因此,如果用户的输入为4,他将收到此表:

id  name
5   Zack
4   David

3 个答案:

答案 0 :(得分:1)

也许你需要表函数。 例如:

create table MyTable(id, name) as (
    select 5,   'Zack' from dual union
    select 4,   'David' from dual union
    select 3,   'Mike' from dual
);
/
CREATE TYPE t_record AS OBJECT (
  num           NUMBER,
  string        VARCHAR2(50)
);
/
CREATE TYPE t_table IS TABLE OF t_record;
/
CREATE OR REPLACE FUNCTION get_table (pN IN NUMBER) RETURN t_table AS
  vReturn  t_table;
BEGIN
  SELECT t_record(id, name)
  bulk collect into vReturn
  from myTable
  where id <= pN;

  RETURN vReturn;
END;
/

select *
from table(get_table(4))

给出:

       NUM STRING                                            
---------- --------------------------------------------------
         3 Mike                                              
         4 David                                             

答案 1 :(得分:0)

select id,name from MyTable where id>=(select id from MyTable)/*imagining using subquery user can give input/* 

答案 2 :(得分:0)

你可以这样做。

"SELECT * FROM MyTable where id>= "userInput;

希望它有所帮助。