我正在使用Oracle SQL
,我需要一些查询帮助。
在下面的查询中,我选择一些条件简单的行(不要介意帽子类型)。从输出行,我需要选择最小值为DATE的行。为此,我使用ROWNUM
。
SELECT *
FROM(
SELECT NAME, DATE
FROM LIST
WHERE NAME = 'BLABLA'
ORDER by DATE)
WHERE ROWNUM = 1;
但是,此查询必须适合任何其他SQL语言,因此我需要在不使用ROWNUM
的情况下编写此查询。
是否有一种简单的方法可以在不使用ROWNUM
的情况下编写此查询?
答案 0 :(得分:2)
不幸的是,行限制语法differs between RDBMS。
以下内容可在SqlServer,Oracle和PostGres之间移植:
SELECT *
FROM (
SELECT NAME, DATE, ROW_NUMBER() OVER (ORDER by DATE) AS RowNum
FROM LIST
WHERE NAME = 'BLABLA'
) X
WHERE RowNum = 1;
但是,其他DB的语法不同,例如MySql的LIMIT
答案 1 :(得分:1)
select * from LIST
where Date=(select min(date) from LIST where Name='BLABLA' )
and Name='BLABLA'