如何在 sql 查询中实现条件 select?
How to implement conditional select in sql query?
如何从 table 中获取每 10 行,即第 10、20 等 但是如果 table 中的行少于 10 行,它应该获取最后一个行.
这可以是此问题中出现的此查询的高级形式 -
我做了这样的事情来选择每 10 行 -
select case_id
from
(select case_id,rownum as seq
from table
where from = 'A' and to ='B'
order by ID
)
where mod(seq,10) = 0
但是如果内查询的结果少于10行,应该取最后一行。
OBS:数据库 - Oracle 12c
SELECT ColumnA,
ColumnB,
ColumnC
FROM (
SELECT ROWNUM rn,
COUNT(*) OVER ( ORDER BY NULL ) mx,
q.ColumnA,
q.ColumnB,
q.ColumnC
FROM (
SELECT ColumnA,
ColumnB,
ColumnC
FROM your_table
ORDER BY ColumnA
) q
)
WHERE MOD( rn, 10 ) = 0
OR ( mx = rn AND mx < 10 );
如何从 table 中获取每 10 行,即第 10、20 等 但是如果 table 中的行少于 10 行,它应该获取最后一个行.
这可以是此问题中出现的此查询的高级形式 -
我做了这样的事情来选择每 10 行 -
select case_id
from
(select case_id,rownum as seq
from table
where from = 'A' and to ='B'
order by ID
)
where mod(seq,10) = 0
但是如果内查询的结果少于10行,应该取最后一行。
OBS:数据库 - Oracle 12c
SELECT ColumnA,
ColumnB,
ColumnC
FROM (
SELECT ROWNUM rn,
COUNT(*) OVER ( ORDER BY NULL ) mx,
q.ColumnA,
q.ColumnB,
q.ColumnC
FROM (
SELECT ColumnA,
ColumnB,
ColumnC
FROM your_table
ORDER BY ColumnA
) q
)
WHERE MOD( rn, 10 ) = 0
OR ( mx = rn AND mx < 10 );