如何选择记录的优先级

[复制链接]
查看11 | 回复9 | 2007-7-4 17:27:50 | 显示全部楼层 |阅读模式
我需要是选择两组记录,可需要第一组记录排第一.用集合查询的话不行,应该如何做?请大家指教.
SELECT ARTICLEID, TITLE FROM SCOTT.JYXX_ARTICLE WHERE NCLASSID=2 AND ISTOP='Y' UNION SELECT ARTICLEID, TITLE FROM SCOTT.JYXX_ARTICLE WHERE NCLASSID=2 ORDER BY ARTICLEID DESC
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层

你的语句完全可以改写为效率高的语句, 没有必要用union,你测试一下!
代码语句如下:
SELECT ARTICLEID,
TITLE
FROM SCOTT.JYXX_ARTICLE
WHERE NCLASSID = 2
ORDER BY decode(ISTOP, 'Y', ARTICLEID, null), rownum;


回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
我需要的是选出ISTOP=Y的为第一项,ISTOP不等于Y的按ARTICLEID 降序排列.
你这样只能选出ISTOP=Y的为第一项,但我还需要ISTOP不等于Y的按ARTICLEID 降序排列,这个达不到.
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
原帖由 qhuang 于 2010-9-10 13:14 发表
我需要的是选出ISTOP=Y的为第一项,ISTOP不等于Y的按ARTICLEID 降序排列.
你这样只能选出ISTOP=Y的为第一项,但我还需要ISTOP不等于Y的按ARTICLEID 降序排列,这个达不到.


你的意思是“我需要的是选出ISTOP=Y的结果数据排在前面,ISTOP不等于Y的按ARTICLEID 降序排列, 排在之后吗?”
测试一下如下的语句!
SELECT ARTICLEID,
TITLE,
decode(ISTOP, 'Y', null, ARTICLEID)
FROM SCOTT.JYXX_ARTICLE
WHERE NCLASSID = 2
ORDER BY decode(ISTOP, 'Y', null, ARTICLEID) desc nulls first;

回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
谢谢,能达到我所要求的效果,十分感谢.
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
这样的话,查询结果就会多一列。
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
这样不就可以了嘛!
SELECT ARTICLEID,

TITLE
FROM SCOTT.JYXX_ARTICLE
WHERE NCLASSID = 2
ORDER BY decode(ISTOP, 'Y', '9'||ARTICLEID, '1'||ARTICLEID) desc;
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
为何对于一百条以上的数据除了ISTOP='Y'是排在最前面,而对于非ISTOP='Y'的数据,articleid=99,98...91,9,89,88,87,...80,7,79...70,6,69...,为何会这样子啊???
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
SELECT ARTICLEID, TITLE FROM SCOTT.JYXX_ARTICLE WHERE NCLASSID=2
order by decode(ISTOP,'Y', null,ARTICLEID) desc nulls first
回复

使用道具 举报

千问 | 2007-7-4 17:27:50 | 显示全部楼层
原帖由 wkc168 于 2010-10-15 17:43 发表
SELECT ARTICLEID, TITLE FROM SCOTT.JYXX_ARTICLE WHERE NCLASSID=2
order by decode(ISTOP,'Y', null,ARTICLEID) desc nulls first


照你的如此,就是我上面所说的排序结果.articleid大于100后,99反而排在前,而100排在10的后面.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行