问题描述
嗨,汤姆,
也许这是微不足道的,但我找不到解决方案: 删除字符串 (“pqr”) 后,我需要保持初始顺序,以便:
将输出:
----
而不是
-------
由于应用了减号自动排序。
有什么建议吗?这可以在SQL中完成吗?
也许这是微不足道的,但我找不到解决方案: 删除字符串 (“pqr”) 后,我需要保持初始顺序,以便:
select 'xyz' from dual union all select 'abc' from dual union all select 'pqr' from dual minus select 'pqr' from dual;
将输出:
----
xyz abc
而不是
-------
abc xyz
由于应用了减号自动排序。
有什么建议吗?这可以在SQL中完成吗?
专家解答
您需要 * defined * 顺序,因为如果没有order BY,则无法保证SQL结果中的任何顺序。
例如,即使没有减号,只是做:
不 * 意味着您将获得 'xyz' 作为第一行。这完全是数据库引擎的心血来潮。
所以你需要添加一些东西来排序,例如
例如,即使没有减号,只是做:
select 'xyz' from dual union all select 'abc' from dual
不 * 意味着您将获得 'xyz' 作为第一行。这完全是数据库引擎的心血来潮。
所以你需要添加一些东西来排序,例如
SQL> select c 2 from ( 3 select 1 s, 'xyz' c from dual 4 union all 5 select 2, 'abc' from dual 6 union all 7 select 3, 'pqr' from dual 8 ) 9 where c not in ( 10 select 'pqr' from dual 11 ) 12 order by s; C --- xyz abc
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




