使用SQL Server的SQL 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

如何在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):
  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'