图上的正弦曲线 - SQL

1 sql math

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

我有以下变量:x,这是当前的偏移量。y 是目标偏移量,z 是我的最大值(23)。

有谁能帮我表达一下吗?已经用谷歌搜索并阅读了它,但还没有让它工作。

对任何答案都会很棒..

最好的问候,汤姆

Qua*_*noi 5

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

Oracle

SELECT  level - 1, SIN((level - 1) * 3.141592653 / 12)
FROM    dual
CONNECT BY
        level <= 24
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

PostgreSQL

SELECT  level, SIN(level * 3.141592653 / 12)
FROM    generate_series(0, 23) level
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)