sql – 不明确的列名错误
发布时间:2020-05-24 18:44:39 所属栏目:MsSql 来源:互联网
导读:在Microsoft SQL Server 2000上执行以下(完整)SQL查询时: SELECT B.ARTIFACTTNS, B.ARTIFACTNAME, B.ARTIFACTTYPE, B.INITIALBYTES, B.TIMESTAMP1, B.FILENAME, B.BACKINGCLASS, B.CHARENCODING, B.APPNAME, B.COMPONEN
|
在Microsoft SQL Server 2000上执行以下(完整)SQL查询时: SELECT B.ARTIFACTTNS,B.ARTIFACTNAME,B.ARTIFACTTYPE,B.INITIALBYTES,B.TIMESTAMP1,B.FILENAME,B.BACKINGCLASS,B.CHARENCODING,B.APPNAME,B.COMPONENTTNS,B.COMPONENTNAME,B.SCAMODULENAME,B.SCACOMPONENTNAME
FROM (SELECT DISTINCT A.ARTIFACTTYPE,A.ARTIFACTTNS,A.ARTIFACTNAME
FROM (SELECT DISTINCT ARTIFACTTYPE,ARTIFACTTNS,ARTIFACTNAME
FROM CUSTPROPERTIES WHERE PNAME = 'AcmeSystemName' AND PVALUE = 'MyRuleGroup'
UNION SELECT DISTINCT ARTIFACTTYPE,ARTIFACTNAME
FROM CUSTPROPERTIES WHERE PNAME = 'AcmeSystemDisplayName' AND PVALUE = 'MyRuleGroup') A,(SELECT DISTINCT ARTIFACTTYPE,ARTIFACTNAME
FROM CUSTPROPERTIES WHERE PNAME = 'AcmeSystemTargetNameSpace' AND PVALUE = 'http://MyModule') B
WHERE A.ARTIFACTTYPE = B.ARTIFACTTYPE AND A.ARTIFACTTNS = B.ARTIFACTTNS AND A.ARTIFACTNAME = B.ARTIFACTNAME) A,BYTESTORE B
WHERE (A.ARTIFACTTYPE = 'BRG') AND A.ARTIFACTTYPE = B.ARTIFACTTYPE AND A.ARTIFACTTNS = B.ARTIFACTTNS AND A.ARTIFACTNAME = B.ARTIFACTNAME
ORDER BY ARTIFACTTYPE,ARTIFACTNAME
我得到以下异常: java.sql.SQLException: [Acme][SQLServer JDBC Driver][SQLServer]
Ambiguous column name 'ARTIFACTTYPE'.
我在这里做错了什么,如何纠正? 解决方法因为ARTIFACTTYPE可以引用A.ARTIFACTTYPE或B.ARTIFACTTYPE,并且服务器需要知道你想要哪一个,只需将其更改为A.ARTIFACTTYPE,在这种情况下你应该没问题.为了澄清,您需要在列名称不明确时指定别名前缀.始终使用别名前缀并不是一种坏习惯,因为它可以在您阅读查询时清楚显示哪些列来自哪些表,并消除了类似这样的问题. 有人可能想知道为什么当它们都引用同一个表中的同一列时,你需要区分两列中的哪一列.答案是,当您将表连接到自身时,来自A.column和B.column的值可能会根据连接条件而有所不同(例如,可能是外连接的情况,其中一列中的值可能是空值). (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- .net – 连接字符串中的SQL Server Compact“数据
- mysql中数据库与数据表编码格式的查看、创建及修
- 实体框架 – EF 4.1 CF:CREATE DATABASE权限被拒
- sql – 为什么我不能使用CASE在ORDER BY中引用列
- 教你几种在SQLServer中删除重复数据方法
- SQL server 使用 内联结(INNER JOIN) 联结多个表
- sql-server – SQL Compilations对SQL Server性能
- sqlserver中几种典型的等待
- sql-server – 如何在SQl Server 2008中选择dist
- CentOS+Nginx+PHP+MySQL标准生产环境配置方法
热点阅读
