sql - 使用连接从 Oracle 表中选择 4 个最新行

标签 sql oracle date join rownum

我是 Oracle 的新手,所以我对 ROWNUM 语句不是很熟悉。我正在尝试从我的表格中获取最新的 4 篇文章。我得到 4 个结果,但它们是 2012 年的文章,即使我的日期排序设置为 DESC。任何帮助都会很棒。

Oracle 查询:

SELECT bt.article_id, ba.* 
FROM articles_types bt 
LEFT JOIN blog_articles ba 
ON ba.article_id = bt.article_id 
WHERE ROWNUM < 5 
ORDER BY Published DESC

最佳答案

只是一个疯狂的猜测,但在 rownum 限制之前对结果进行排序:

select t.* from
(
SELECT * 
FROM articles_types bt 
LEFT JOIN blog_articles ba 
ON ba.article_id = bt.article_id 
ORDER BY Published DESC
) T
WHERE ROWNUM <= 4 

这行得通,问题是重复的列名

关于sql - 使用连接从 Oracle 表中选择 4 个最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28278399/

相关文章:

SQL Select 语句查询一个月的考勤情况

java - 如何处理 JDBC 中的 VARRAY (Oracle 9i)?

Google 表格中的日期格式无法按照说明工作

python - 如何使用xlrd将Python日期转换为Excel日期(属性xlrd.xldate_from_date_tuple不存在)

php - 自注册以来根据时间自动删除 Wordpress 用户?

sql - 如何在 BigQuery SQL 中引用前几行的列值,以执行操作或计算?

mysql - 如何在 LEFT JOIN 两个表后保留不满足 WHERE 子句中条件的 NULL 值行

oracle - 根据参数设置APEX选择列表默认值

sql - Oracle SQL 选择不同

django - Django 的工作日