【问题标题】:How to implement T-SQL table variable in Python如何在 Python 中实现 T-SQL 表变量
【发布时间】:2021-10-04 10:39:35
【问题描述】:

我想在 Python 中引入 T-SQL 表变量。我创建了一个列表,它的元素是字典。所以 1 个元素 = T-SQL 中的 1 行。

在我的 T-SQL 代码中有。

declare @tmp_policy table(rnm int identity, polid int, num int, opendate DATETIME)

在我的 Python 代码中,我尝试这样。

tmp_policy = [
            {
                "rnm": 1,
                "polid": None,
                "num": None,
                "opendate": None
            }]

然后像这样追加一个元素。

 tmp_policy.append({
                "rnm": len(tmp_policy)+1,
                "polid": pol_p[0]['ID'],
                "num": 0,
                "opendate": pol_p[0]['OPENDATE']
            })

我走对了吗?

【问题讨论】:

  • 您是否走在正确的道路上,试一试是否有效?请也发布您的其余代码。
  • 表值参数需要基于表类型,不能只使用declare @tbl as table
  • 看。我分别有一个 T-SQL 代码和 Python 项目。我正在将 T-SQL “翻译”为 Python (Django)。我在其中遇到了一些表变量。问题是......如何在python中计算一些数据以假装与表变量相同。

标签: python sql-server tsql stored-procedures datatables


【解决方案1】:

dataframe 的概念更可能与 SQL-Server 表类似。它可以通过在你的python环境中安装pandas模块来使用。

Installation pandas

例如,下面的python代码可能就是你想要的。

import pandas as pd
from datetime import datetime

tmp_policy = pd.DataFrame(data=None,
                          columns=['rnm', 'polid', 'num', 'opendate'],
                          ).convert_dtypes({
                              'rnm': int,
                              'polid': int,
                              'num': int,
                              'opendate': datetime
                          })

tmp_policy['rnm']=[i for i in range(1,len(pol_p['ID'])+1)]
tmp_policy['polid']=pol_p['ID']
tmp_policy['num']=0
tmp_policy['opendate']=pol_p['OPENDATE']

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多