在应使用条件的上下文(在 'where' 附近)中指定了非布尔类型的表达式。 关键字 'order' 附近有语法错误。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在应使用条件的上下文(在 'where' 附近)中指定了非布尔类型的表达式。 关键字 'order' 附近有语法错误。相关的知识,希望对你有一定的参考价值。

if @PageIndex = 1
begin
set @strTmp =''
if @strWhere != ''
begin
set @strTmp = ' where ' + @strWhere
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
exec (@strSQL)
end

执行时使用的语句是:
DECLARE @return_value int
EXEC @return_value = [dbo].[UP_GetRecordByPage]
@tblName = N'DAS_AJJBXX',
@fldName = N'AJID',
@PageSize = 15,
@PageIndex = 1,
@IsReCount = 1,
@OrderType = 0,
@strWhere = N'FLBH = ''E1'''
SELECT 'Return Value' = @return_value
GO

参考技术A 提示order附近有语法错误,那就是拼接出了问题,一般这种拼接要在exec (@strSQL) 前输出一下语句,print @strSQL以便检查语句的准确性

以上是关于在应使用条件的上下文(在 'where' 附近)中指定了非布尔类型的表达式。 关键字 'order' 附近有语法错误。的主要内容,如果未能解决你的问题,请参考以下文章

SQL中 为啥要避免在where后使用'1=1'这种表达式作为部分条件

thinkphp where里如何加两个判断条件求大神!

thinkphp的where条件为在一个范围又不等于怎么写

thinkphp中连贯操作,在where判断条件中不能使用Mysql内置函数,如YEAR,DAY啥的?

C# SQL条件查询语句where中使用变量的用法

SQL 中 where 条件中 in 后面 加 CASE WHEN 语句 报错