SQL Server 2012中的列名称不明确错误

SQL Server 2012中的列名称不明确错误,sql,sql-server-2008,Sql,Sql Server 2008,请参见以下查询 select UserStatus,UserStatus from ((Select 'Active' as UserStatus) union (Select 'Inactive' as UserStatus))a order by UserStatus 错误: Msg 209, Level 16, State 1, Line 3 Ambiguous column name 'UserStatus' 解决方案: ALTER DATABASE VCarePortal

请参见以下查询

select UserStatus,UserStatus from ((Select 'Active' as UserStatus) 
 union (Select 'Inactive' as UserStatus))a order by UserStatus  
错误:

Msg 209, Level 16, State 1, Line 3
Ambiguous column name 'UserStatus'
解决方案:

ALTER DATABASE VCarePortal
SET COMPATIBILITY_LEVEL = 100

90 = SQL Server 2005`enter code here`
100 = SQL Server 2008 and SQL Server 2008 R2
110 = SQL Server 2012.

我试过兼容级别模式。但是我仍然得到了模糊的错误。

您选择了同一列两次,删除一列,这就解决了问题。无论如何,您不需要两次,因为每个联合的选择只返回一列

select UserStatus from ((Select 'Active' as UserStatus) 
 union (Select 'Inactive' as UserStatus))a order by UserStatus 

您选择同一列两次,删除一列,这就解决了问题。无论如何,您不需要两次,因为每个联合的选择只返回一列

select UserStatus from ((Select 'Active' as UserStatus) 
 union (Select 'Inactive' as UserStatus))a order by UserStatus 

您选择同一列两次,删除一列,这就解决了问题。无论如何,您不需要两次,因为每个联合的选择只返回一列

select UserStatus from ((Select 'Active' as UserStatus) 
 union (Select 'Inactive' as UserStatus))a order by UserStatus 

您选择同一列两次,删除一列,这就解决了问题。无论如何,您不需要两次,因为每个联合的选择只返回一列

select UserStatus from ((Select 'Active' as UserStatus) 
 union (Select 'Inactive' as UserStatus))a order by UserStatus 

请删除一个UserStatus并尝试:

select UserStatus from 
(
    (Select 'Active' as UserStatus) 
    union 
    (Select 'Inactive' as UserStatus)
)a order by UserStatus

请删除一个UserStatus并尝试:

select UserStatus from 
(
    (Select 'Active' as UserStatus) 
    union 
    (Select 'Inactive' as UserStatus)
)a order by UserStatus

请删除一个UserStatus并尝试:

select UserStatus from 
(
    (Select 'Active' as UserStatus) 
    union 
    (Select 'Inactive' as UserStatus)
)a order by UserStatus

请删除一个UserStatus并尝试:

select UserStatus from 
(
    (Select 'Active' as UserStatus) 
    union 
    (Select 'Inactive' as UserStatus)
)a order by UserStatus

在这里,当您对同一列进行排序时会产生歧义,因此sql引擎不知道需要对哪个列进行排序

所以使用下面的查询将解决您的问题

-- Order by 1 means order with first column in selection
select UserStatus, UserStatus 
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by 1 


-- Or remove duplicate column from selection.
select UserStatus
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by UserStatus  

在这里,当您对同一列进行排序时会产生歧义,因此sql引擎不知道需要对哪个列进行排序

所以使用下面的查询将解决您的问题

-- Order by 1 means order with first column in selection
select UserStatus, UserStatus 
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by 1 


-- Or remove duplicate column from selection.
select UserStatus
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by UserStatus  

在这里,当您对同一列进行排序时会产生歧义,因此sql引擎不知道需要对哪个列进行排序

所以使用下面的查询将解决您的问题

-- Order by 1 means order with first column in selection
select UserStatus, UserStatus 
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by 1 


-- Or remove duplicate column from selection.
select UserStatus
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by UserStatus  

在这里,当您对同一列进行排序时会产生歧义,因此sql引擎不知道需要对哪个列进行排序

所以使用下面的查询将解决您的问题

-- Order by 1 means order with first column in selection
select UserStatus, UserStatus 
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by 1 


-- Or remove duplicate column from selection.
select UserStatus
from (
(Select 'Active' as UserStatus) 
 union 
 (Select 'Inactive' as UserStatus)
)a order by UserStatus  

你想得到什么样的结果?你期望的结果是什么。你想要两列还是一列都好?你想得到什么结果?你期望的结果是什么。你想要两列还是一列都好?你想得到什么结果?你期望的结果是什么。你想要两列还是一列都好?你想得到什么结果?你期望的结果是什么。您想要两列还是单列都可以?