小编典典

在Django Python中使用现有数据库

sql

我有现有的数据库,该数据库正在与另一个具有python和sqlalchemy的应用程序一起使用。现在,我想构建REST API端点,因为我必须围绕当前代码构建包装器。

  1. 我想使用Django,我对此毫不怀疑

  2. 我可以将相同的数据库用于Django相关表,以便我的其他表也在那里并且某些django生成的表也位于同一数据库中吗?

我想将我的应用程序从sqlachemy慢慢转移到django ORM,但首先我必须同时使用两者。我的意思是Django ORM中有一些模型,而SqlAlchemy中有其他模型。这可能吗


阅读 154

收藏
2021-05-05

共1个答案

小编典典

动态SQL PIVOT:

    create table temp
    (
        date datetime,
        category varchar(3),
        amount money
    )

    insert into temp values ('1/1/2012', 'ABC', 1000.00)
    insert into temp values ('2/1/2012', 'DEF', 500.00)
    insert into temp values ('2/1/2012', 'GHI', 800.00)
    insert into temp values ('2/10/2012', 'DEF', 700.00)
    insert into temp values ('3/1/2012', 'ABC', 1100.00)


    DECLARE @cols AS NVARCHAR(MAX),
        @query  AS NVARCHAR(MAX);

    SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) 
                FROM temp c
                FOR XML PATH(''), TYPE
                ).value('.', 'NVARCHAR(MAX)') 
            ,1,1,'')

    set @query = 'SELECT date, ' + @cols + ' from 
                (
                    select date
                        , amount
                        , category
                    from temp
               ) x
                pivot 
                (
                     max(amount)
                    for category in (' + @cols + ')
                ) p '


    execute(@query)

    drop table temp

结果:

    Date                        ABC         DEF    GHI
    2012-01-01 00:00:00.000     1000.00     NULL    NULL
    2012-02-01 00:00:00.000     NULL        500.00  800.00
    2012-02-10 00:00:00.000     NULL        700.00  NULL
    2012-03-01 00:00:00.000     1100.00     NULL    NULL
2021-05-05