小编Chr*_*ris的帖子

动态SQL中的循环

我有代码,我想应用于许多表,而不是简单地复制和替换表名,我想使用某种循环或光标来简化事情.

我设想设置一个表名的数组,并使用索引迭代列表,检索每个表名,并使用动态SQL在我的代码中散布表名.

因为据我所知,在SQL中没有"数组"构造,所以我不确定这是如何工作的.

关于如何解决这个问题的任何想法?

sql sql-server

8
推荐指数
1
解决办法
1万
查看次数

是否有任何直接的方法从SQL Server输出文本文件(或CSV)?

我做了大量的修补和搜索,最好的选择似乎是:

  1. 将输出发送到文本并复制/粘贴到文本文件或Excel或

  2. 输出到一个有点非常规的.rpt文件,我不确定你要做什么 - 在Excel中打开它不会保留原始输出中存在的格式.

对于看似非常常见的任务,我很惊讶没有更简单的方法来做到这一点.

任何人都可以提出一个比我概述的两种方法更简单的方法吗?

哦,为了它的价值,我正在研究SQL Server 2008.

sql sql-server

8
推荐指数
2
解决办法
1万
查看次数

将在 Python 中创建的 Pandas 数据框插入 SQL Server

如前所述,我在 Python 中创建了一个数据集合(40k 行,5 列),我想将其插入回 SQL Server 表中。

通常,在 SQL 中,我会'select * into myTable from dataTable'调用执行插入操作,但是位于 Pandas 数据帧中的数据显然使这变得复杂。

我并不正式反对使用 SQLAlchemy(尽管更愿意避免再次下载和安装),但更喜欢在 Python 中本地执行此操作,并且我使用 pyodbc 连接到 SSMS。

有没有一种直接的方法可以避免循环(即逐行插入)?

sql-server pyodbc python-3.x pandas

6
推荐指数
1
解决办法
8776
查看次数

导入张量流问题:系统错误:_pywrap_checkpoint_reader 的初始化引发了未报告的异常

在 Ubuntu 22.04 机器上运行,安装了 Spyder 3.9,安装了tensorflow 2.15。

只是尝试导入包,我运行并返回以下错误:

import tensorflow as tf
RuntimeError: module compiled against API version 0x10 but this version of numpy is 0xe

Traceback (most recent call last):

  File "/tmp/ipykernel_275746/3793406994.py", line 1, in <module>
    import tensorflow as tf

  File "/home/chris/anaconda3/lib/python3.9/site-packages/tensorflow/__init__.py", line 48, in <module>
    from tensorflow._api.v2 import __internal__

  File "/home/chris/anaconda3/lib/python3.9/site-packages/tensorflow/_api/v2/__internal__/__init__.py", line 11, in <module>
    from tensorflow._api.v2.__internal__ import distribute

  File "/home/chris/anaconda3/lib/python3.9/site-packages/tensorflow/_api/v2/__internal__/distribute/__init__.py", line 8, in <module>
    from tensorflow._api.v2.__internal__.distribute import combinations

  File "/home/chris/anaconda3/lib/python3.9/site-packages/tensorflow/_api/v2/__internal__/distribute/combinations/__init__.py", line 8, in <module>
    from tensorflow.python.distribute.combinations import …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

6
推荐指数
0
解决办法
1880
查看次数

从值表计算算术回报

我创建了一个指数价格水平表(例如,标准普尔 500 指数),我想计算每日回报。表结构如下所示:

Date        Value
2009-07-02  880.167341
2009-07-03  882.235134
2009-07-06  881.338052
2009-07-07  863.731494
2009-07-08  862.458985
Run Code Online (Sandbox Code Playgroud)

我想计算指数的每日算术回报(即百分比回报),定义为:

Daily Return = P(2)/P(1) - 1
Run Code Online (Sandbox Code Playgroud)

其中 P 表示这种情况下的索引值。鉴于上面提供的输入表,所需的输出将如下所示:

    Date        Return
    2009-07-03  0.002349318
    2009-07-06  -0.001016829
    2009-07-07  -0.019977077
    2009-07-08  -0.001473269
Run Code Online (Sandbox Code Playgroud)

我突然想到自连接会起作用,但我不确定增加第二个表上的日期以考虑周末的最佳方法。

关于解决此问题的最佳方法有什么想法吗?

sql sql-server

5
推荐指数
1
解决办法
3875
查看次数

使用IF/ELSE IF语句的奇数错误

我正在尝试创建一个依赖于scenario参数值的临时表,并使用以下IF语句,但得到以下错误:

    IF @indexName = 'A'
        begin select top 400 * into #temp from #pretemp order by EMRev desc end
    ELSE IF @indexName = 'B'
        begin select top 75 * into #temp from #pretemp order by EMRev desc end
    ELSE IF @indexName = 'C'
        begin select top 300 * into #temp from #pretemp order by EMRev desc end
    ELSE 
        begin select top 100 * into #temp from #pretemp order by EMRev desc end
Run Code Online (Sandbox Code Playgroud)

消息2714,级别16,状态1,行179数据库中已存在名为"#temp"的对象.消息2714,级别16,状态1,行181数据库中已存在名为"#temp"的对象.消息2714,级别16,状态1,行183数据库中已存在名为"#temp"的对象.

我确定IF语句基于@indexName变量工作(用简单的东西替换block语句(例如,'select @indexName'),程序运行正常).

有关导致此错误的原因的任何想法?

sql t-sql sql-server-2008-r2

4
推荐指数
2
解决办法
1120
查看次数

在 Python 中阻止 GET 请求的解决方法

我正在尝试使用请求和beautifulsoup 来检索和处理网络搜索的结果。

我编写了一些简单的代码来完成这项工作,它成功返回(状态 = 200),但请求的内容只是一条错误消息“对于给您带来的任何不便,我们深表歉意,但该站点目前不可用。” ,并且在过去几天中一直如此。然而,在 Firefox 中搜索返回的结果没有问题。我已经使用英国站点的 URL 运行了代码,并且它可以正常工作,所以我想知道美国站点是否设置为阻止抓取网络搜索的尝试。

有没有办法掩盖我试图从 Python 中检索搜索结果的事实(例如,伪装成 Firefox 中的标准搜索)或其他一些允许访问搜索结果的工作?

包含以下代码供参考:

import pandas as pd
from requests import get
import bs4 as bs
import re
# works
# baseURL = 'https://www.autotrader.co.uk/car-search?sort=sponsored&radius=1500&postcode=ky119sb&onesearchad=Used&onesearchad=Nearly%20New&onesearchad=New&make=TOYOTA&model=VERSO&year-from=1990&year-to=2017&minimum-mileage=0&maximum-mileage=200000&body-type=MPV&fuel-type=Diesel&minimum-badge-engine-size=1.6&maximum-badge-engine-size=4.5&maximum-seats=8'
# doesn't work
baseURL = 'https://www.autotrader.com/cars-for-sale/Certified+Cars/cars+under+50000/Jeep/Grand+Cherokee/Seattle+WA-98101?extColorsSimple=BURGUNDY%2CRED%2CWHITE&maxMileage=45000&makeCodeList=JEEP&listingTypes=CERTIFIED%2CUSED&interiorColorsSimple=BEIGE%2CBROWN%2CBURGUNDY%2CTAN&searchRadius=0&modelCodeList=JEEPGRAND&trimCodeList=JEEPGRAND%7CSRT%2CJEEPGRAND%7CSRT8&zip=98101&maxPrice=50000&startYear=2015&marketExtension=true&sortBy=derivedpriceDESC&numRecords=25&firstRecord=0'
a = get(baseURL)
soup = bs.BeautifulSoup(a.content,'html.parser')

info = soup.find_all('div', class_ = 'information-container')
price = soup.find_all('div', class_ = 'vehicle-price')

d = [] 
for idx, i in enumerate(info):
    ii = i.find_next('ul').find_all('li')

    year_ = ii[0].text
    miles = re.sub("[^0-9\.]", "", ii[2].text)
    engine …
Run Code Online (Sandbox Code Playgroud)

python beautifulsoup python-3.x

4
推荐指数
1
解决办法
4457
查看次数

在没有循环的情况下在SQL中创建年/季度表

我有一个开始年份和结束年份,例如2017年和2019年.

我想在我声明的startYear和endYear之间创建一个包含年份季度(例如,1,2,3,4)的表格,并在最终的endYear中设置季度,在2处停止(它始终向前看) .

下面的样本输出.

year    quarter
2017    1
2017    2
2017    3
2017    4
2018    1
2018    2
2018    3
2018    4
2019    1
2019    2
Run Code Online (Sandbox Code Playgroud)

看起来它应该很简单,除了有些笨重的方法依赖于循环或UNION或只是手动将值插入表中,没有任何事情发生在我身上.

sql t-sql sql-server

2
推荐指数
1
解决办法
99
查看次数