首页 > 解决方案 > 基本 SQL 语句返回错误

问题描述

我是 SQL 新手,但我不断收到以下 SQL 语句的错误:

SELECT Id,Name
FROM {PositionInCompany}
WHERE @AdvancedFilter

目前我只是在测试 AdvancedFilter 的默认情况,所以它设置为“1=1”并且应该从 PositionInCompany 返回所有名称和 ID。如果我简单地输入“1 = 1”,则此方法有效,但如果我使用变量(具有完全相同的字符串值)则无效。

附上错误。我错过了什么?

油菜

在此处输入图像描述

标签: sql

解决方案


这可能是因为正如您所说,它是一个字符串,将转换为:

SELECT Id,Name FROM {PositionInCompany} WHERE '1=1'

sql 将把它当作一个字符串来读取,它不会知道它是可以执行的。您可以将 AdvancedFilter 的值更改为其他值

@AdvancedFilter = 'test'
SELECT Id,Name FROM {PositionInCompany} WHERE 'test'=@AdvancedFilter

或使用某些东西来动态构建查询


推荐阅读