c# - WHERE 上的 SQL Server 查询错误

标签 c# sql sql-server

SQL Server 2005 通过 C# (VS 20015)。知道为什么 WHERE 不起作用吗?

SQL语句为:

SELECT 
    AA003Employee.idEmployee, 
    AA001Person.LastName, AA001Person.FirstName, 
    AA017JobTitle.JobTitle, AA017JobTitle.Department, 
    AA003Employee.Disabled 
FROM 
    AA003Employee 
JOIN 
    AA001Person ON AA003Employee.idPerson = AA001Person.idPerson 
JOIN 
    AA017JobTitle ON AA003Employee.idJobTitle = AA017JobTitle.idJobTitle 
ORDER BY 
    AA001Person.LastName ASC, AA001Person.FirstName ASC, 
    AA017JobTitle.JobTitle ASC 
WHERE 
    AA003Employee.Disabled = 'N';

尝试过:

  1. 省略时工作正常 -> WHERE AA003Employee.Disabled = 'N'

  2. 当我尝试将其替换为 -> "... WHERE Disabled = 'N'";

  3. 时抛出错误

错误截图如下:

Screenshot

最佳答案

您的问题是 WHERE 子句的位置。 SQL 关心语句中子句的顺序。但是你也应该学会使用表别名:

SELECT e.idEmployee, p.LastName, p.FirstName, jt.JobTitle, jt.Department, e.Disabled
FROM AA003Employee e JOIN
     AA001Person p
     ON e.idPerson = p.idPerson JOIN
     AA017JobTitle jt
     ON e.idJobTitle = jt.idJobTitle
WHERE e.Disabled = 'N'
ORDER BY p.LastName ASC, p.FirstName ASC, jt.JobTitle ASC;

看到了吗?查询更容易编写和阅读。

关于c# - WHERE 上的 SQL Server 查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47585651/

相关文章:

asp.net - 如何在 EntityDataSource 中使用 CASE 语句进行排序?

c# - Entity Framework 如何为主键值生成 GUID?

c# - 在 DataTable 中查找值

c# - 从 C# 代码隐藏 (.NET) 调用 JavaScript 函数时出现问题

c# - 如何在 .NET 中创建非 OwnerDraw 按钮?

sql - PostgreSQL 无法聚合来自多个表的数据

c# - 单击一次安装 System.Data.SqlServerCe 出现问题?

c# - 如何检测 Xamarin.Forms 中选项卡按钮的点击?

mysql - 如何添加在同一个表中选择的临时列?

MySql join 语句与左表中的所有行