c# - C# 中的 SQL 查询错误 : Using SELECT JOIN WHERE OR

标签 c# sql .net sql-server

SQL 对我来说仍然相对较新,但这是我从所做的研究中得出的。

这是我的sql命令:

"SELECT Array_ID 
 FROM Array_Location JOIN 
      Obj_Type.Type_ID ON Array_Location.Obj_Type 
 WHERE (Obj_Type.Object = 'CIRCLE') 
    OR (Obj_Type.Object = 'POLYGON');"

这是我的错误

An expression of non-boolean type specified in a context where a condition is expected, near 'WHERE'

这是一个语法问题,但我不确定解决方案

我有两个表是:

CREATE TABLE [dbo].[Obj_Type] (
[Type_ID] INT  NOT NULL,
[Object]  TEXT NOT NULL,
CONSTRAINT [PK_OBJ_TYPE] PRIMARY KEY CLUSTERED ([Type_ID] ASC)
);

CREATE TABLE [dbo].[Array_Location] (
[Array_ID]   INT NOT NULL,
[Obj_Type]   INT NOT NULL,
[Element_ID] INT NOT NULL,
CONSTRAINT [Array_Location_fk0] FOREIGN KEY ([Obj_Type]) REFERENCES [dbo].[Obj_Type] ([Type_ID]) ON UPDATE CASCADE
);

谢谢

最佳答案

原因:

您在 JOIN 中有语法错误:

Array_Location JOIN Obj_Type.Type_ID ON Array_Location.Obj_Type

解决方案:

SELECT Array_ID 
FROM Array_Location JOIN 
     Obj_Type ON Obj_Type.Type_ID = Array_Location.Obj_Type 
WHERE (CONVERT(nvarchar(50),Obj_Type.Object) = N'CIRCLE') 
   OR (CONVERT(nvarchar(50),Obj_Type.Object) = N'POLYGON');

关于c# - C# 中的 SQL 查询错误 : Using SELECT JOIN WHERE OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30727921/

相关文章:

c# - 如果你有 :base() in the top class? 会发生什么

sql - GROUP BY 子句未显示所需结果

java - hibernate 中没有外键的一对多

c# - 如何从列表列表中选择项目

c# - Global.asax 在小改动后解析错误并恢复到以前的版本

c# - 带有格式提供程序的 Expression.ToString()

c# - 如何在运行时 C# 中搜索嵌入式文件

c# - 为什么protobuf-net在反序列化过程中调用了属性的getter但尚未调用setter

c# - 如何在 MVC 中填充模型

c# - ServiceStack ORMLite UpdateOnly 故障