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

正弦曲线图-SQL

  •  1
  • Tom  · 技术社区  · 17 年前

    我试图在SQL中创建一个简单的正弦曲线,它在值(0-23)之间交替。

    我有以下变量:x,它是当前的偏移量。y是不稳定的偏移量,z是我的最大值(23)。

    有人能帮我表达一下吗?已经在谷歌上搜索并阅读过,但还没有开始工作。

    任何答案都会很好。

    最好的问候, 汤姆

    1 回复  |  直到 17 年前
        1
  •  4
  •   Quassnoi    17 年前

    您需要某种虚拟行集来完成此操作。

    Oracle :

    SELECT  level - 1, SIN((level - 1) * 3.141592653 / 12)
    FROM    dual
    CONNECT BY
            level <= 24
    

    SQL Server 2005+ :

    WITH    rows AS
            (
            SELECT  0 AS level
            UNION ALL
            SELECT  level + 1
            FROM    rows
            WHERE   level <= 23
            )
    SELECT  level, SIN((level) * 3.141592653 / 12)
    FROM    rows
    

    PostgreSQL :

    SELECT  level, SIN(level * 3.141592653 / 12)
    FROM    generate_series(0, 23) level
    

    MySQL :

    SELECT  level, SIN(level * 3.141592653 / 12)
    FROM    (
            SELECT  0 AS level
            UNION ALL
            SELECT  1 AS level
            UNION ALL
            …
            /*
            Yes, you need to repeat it 24 times.
    
            Everyone who reads it: please call MySQL and ask them
            to implement generate_series.
    
            Thanks.
            */
            UNION ALL
            SELECT  23 AS level
            ) q