当前位置: 首页 > 知识库问答 >
问题:

Oracle SQL空行顺序

秦俊发
2023-03-14

我有下表:

我想生成这个输出:

通过下面的查询,我能够生成下表

WITH aux ( name ) AS (
    SELECT
        NULL
    FROM
        dual
    UNION ALL
    SELECT
        'Name1'
    FROM
        dual
    UNION ALL
    SELECT
        'Name2'
    FROM
        dual
    UNION ALL
    SELECT
        'Name3'
    FROM
        dual
    UNION ALL
    SELECT
        NULL
    FROM
        dual
    UNION ALL
    SELECT
        'Name4'
    FROM
        dual
)
SELECT
    a.*,
    nvl(name, concat('Anon', ROW_NUMBER() OVER(
        PARTITION BY name
        ORDER BY
            ROWNUM
    ))) output
FROM
    aux a;

然而,空值出现在末尾,而不是原始顺序。有没有办法防止这种情况?

共有1个答案

夏建木
2023-03-14

SQL表表示无序(多)集。没有排序,除非列指定该排序。如果没有指定行顺序的列,您的问题就没有意义。

如果我假设您有一个排序列,那么您可以执行以下操作:

select name,
       coalesce(name,
                'anon' || row_number() over (partition by name order by <ordering col>
               ) as output
from aux
order by <ordering col>;
 类似资料:
  • 我有一个大约15万行的表,我必须使用JavaQuartz Scheduler一次获取1000行。要求是一次限制1000行,然后再限制1000行等(与MySQL限制查询相同)。 我正在使用以下查询: 问题是上面的查询返回了我在结果集中不需要的额外列rownum,因为返回的数据被传递给MapListHandler(),后者返回将结果转换为JSON,并且我将此JSON传递给不期望额外rownum列的We

  • 此代码正在触发错误 无效的sql对象。 从文档中我觉得表中的任何对象都是sql对象<这里怎么了? 在Oracle 10G中考虑以下函数 在10G上下文中考虑以下函数 我得到了一个错误的无效对象 我的桌子就像 此表位于“测试”模式中,我与SCOTT有联系,SCOTT有“测试时授予选择权”。测试表到scott's 我还是会出错 ERR_INVALID_OBJECT

  • 在Crystal Reports中,我使用以下查询(针对Oracle数据库)为报表中的单个字段生成数据: 这可以很好地工作,并基于提供的{HB_As_At_Date}(the{?}语法是Crystal将参数值嵌入SQL(SQL)的方法。不过,上述查询的内容不是我的问题——我想做的是在几个不同的日期重复运行它,并将输出输入Crystal以供在报告中使用。 假设我希望在9月的每个星期一运行这个查询,我

  • 我知道这相对简单,但我无法在归档中找到解决方案,尽管我看到了类似的解决方案,但我的SQL不足以对它们进行反向工程。 我所要做的就是从呼叫管理表中,按周分组计算团队中发出的呼叫数。下面是一个返回30000多个条目的代码示例。如果可能的话,我想把这个数字分为几周,也可以根据周五到周五的范围分为几天? 关键领域是 表名称是 这样我就可以创建一个列表,列出该支持组每周记录的通话次数 所以很简单,但是我可以

  • 问题内容: 我试图理解这段代码,不确定为什么第二遍在第一遍之前执行。如果有人真的可以帮助我,那就太好了! 输出: 问题答案: 您没有任何内容可以显式同步两个goroutine的顺序。如果运行足够的时间,您将看到调用以不同的顺序进行打印。当执行goroutine时,由于它们是并发操作,因此无法保证它们将何时执行和/或完成。您需要使用各种标准库程序包或通道本身来同步并发运行的goroutine的执行。

  • 我正在实现一个分页器(在Java),它应该允许并行访问。 我有以下测试用例(测试在Groovy中,带有Spock): 此testcase失败,出现以下错误: 拆分器具有 当我不使用并行时,代码可以工作。所以我不理解: 如果设置了,流框架是否应该保证顺序,并且应该在使用并行生成的块时对结果进行排序?如果是,为什么不在我的情况下排序? 还是我的实现中有错误,必须按照给定的顺序拆分?(当前我在打开页面的