【问题标题】:(42000, [42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Incorrect syntax near s. (102) (SQLExecDirectW))(42000、[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]s. (102) (SQLExecDirectW) 附近的语法不正确)
【发布时间】:2020-02-26 21:15:05
【问题描述】:

我正在 python 中编写以下 sql 代码,但不知道哪里出了问题或为什么会看到此错误:

query='''
    SELECT 
        FIN AS 'LIN', 
        CUSIP, 
        Borrower_Name, 
        Alias,
        DS_Maturity, 
        Spread, 
        Facility, 
        Facility_Size, 
        Log_date
    FROM [Main].[FacilityInformation]
    WHERE 
        CUSIP IN ('{}') 
        OR (
            YEAR(DS_Maturity) IN ('{}') 
            AND (
                Borrower_Name IN ('{}') 
                OR Alias IN ('{}')
            )
        )
'''

【问题讨论】:

  • 您在此处发布的查询将解析得很好。假设您为简洁起见将值列表缩短为 {}。?
  • 这些单引号可能需要一些转义字符。
  • 查询中没有s.

标签: python sql sql-server


【解决方案1】:

试试这样:

query='''
    SELECT 
        FIN AS ''LIN'', 
        CUSIP, 
        Borrower_Name, 
        Alias,
        DS_Maturity, 
        Spread, 
        Facility, 
        Facility_Size, 
        Log_date
    FROM [Main].[FacilityInformation]
    WHERE 
        CUSIP IN ('{}') 
        OR (
            YEAR(DS_Maturity) IN ('{}') 
            AND (
                Borrower_Name IN ('{}') 
                OR Alias IN ('{}')
            )
        )
'''

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多