我一直试图让这个查询工作太久,我想现在是时候寻求帮助。我目前正在尝试使用PDO连接类型从PHP脚本查询MSSQL数据库。我试图从行之间的某些值(这里是100和200)获取所有内容。这是我试图运行的查询。行组中的MSSQL查询PHP PDO
SELECT TOP 100 Id, CreateDate, cast(XmlBody as varchar(max))
as XmlBody, ObjectType, Tag, Name
FROM Table WHERE ObjectType LIKE 'StaffPersonal' AND BETWEEN 100
AND 200
我通常使用MYSQL,所以我有点迷失在适当的MSSQL语法(LIKE关键字是一个残酷的教训)。此查询引发一般性语法错误。
exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 156 General SQL Server error: Check messages from the SQL Server [156] (severity 15)
我不确定是什么原因导致了这个错误,但它让我发疯。 在此先感谢您的帮助,它是真正的赞赏。
@ user3525480 感谢您回应的简化版本,和你正确认识我。我试过这个查询,现在我得到了SQL错误207:RowNum上的列名无效。这绝对是一个MSSQL服务器,所以我不确定为什么ROW_NUMBER不能正常工作。 – hugmungus
我不知道为什么你会得到这个错误。我在sqlfiddle上的查询的简化版本上试过我的查询,它工作正常,你确定没有拼写错误等?我在我的原始消息中添加了用于在sqlfiddle上测试它的代码 – poaca
是的,我敢肯定没有输入错误,因为我可以运行查询,如果我离开BETWEEN和ROW_NUMBER的东西。我将尝试使用mssql_connect而不是PDO,并查看它是否与此相关。 – hugmungus