代码之家  ›  专栏  ›  技术社区  ›  dks551

如何在雪花数据仓库中创建循环序列

  •  1
  • dks551  · 技术社区  · 6 年前

    我在雪花数据仓库(如Oracle)中寻找循环序列。我猜雪花数据仓库没有这个内置的。知道如何实施吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Marcin Zukowski    6 年前

    虽然Snowflake现在不支持它(请考虑在Snowflake社区论坛中提交一个功能请求),但您可以(主要)使用UDF来模拟它,例如:

    create or replace sequence seq;
    create or replace function cyclic_seq() returns int as 'mod(seq.nextval, 3)';
    create or replace table x(s string, i int default cyclic_seq());
    
    insert into x(s) values('a');
    insert into x(s) values('b');
    insert into x(s) values('c');
    insert into x(s) values('d');
    insert into x(s) values('e');
    insert into x(s) values('f');
    
    select * from x;
    ---+---+
     S | I |
    ---+---+
     a | 1 |
     b | 2 |
     c | 0 |
     d | 1 |
     e | 2 |
     f | 0 |
    ---+---+
    
    推荐文章