使用SQL Server的SQL WHERE子句无效
如何在SQL Server中执行where子句?我总是犯一些奇怪的错误。例如,这项工作:使用SQL Server的SQL WHERE子句无效,sql,sql-server,Sql,Sql Server,如何在SQL Server中执行where子句?我总是犯一些奇怪的错误。例如,这项工作: >>> cursor.execute('SELECT * FROM SalesRawData WHERE title IS NULL') 但这是一个错误: >>> cursor.execute('SELECT * FROM SalesRawData WHERE title="asdf"') Traceback (most recent call last): Fi
>>> cursor.execute('SELECT * FROM SalesRawData WHERE title IS NULL')
但这是一个错误:
>>> cursor.execute('SELECT * FROM SalesRawData WHERE title="asdf"')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pymssql.pyx", line 464, in pymssql.Cursor.execute (pymssql.c:7491)
pymssql.ProgrammingError: (207, "Invalid column name 'asdf'.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error:
Check messages from the SQL Server\n")
知道我为什么必须在开头添加N吗?您的WHERE子句位置正确,但是SQL Server使用单引号而不是双引号来指定字符串值。双引号用于指定表名或列名,这就是SQL查找名为asdf的列而不是将其视为值的原因。正确的SQL应该是SELECT*FROM SalesRawData,其中title='asdf'
SELECT * FROM SalesRawData WHERE Title = N'asdf'