Mysql SQL选择Concat不同的所有位置

Mysql SQL选择Concat不同的所有位置,mysql,select,distinct,concat,Mysql,Select,Distinct,Concat,我希望创建一个select语句,当两行的连接不同时,在该语句中选择所有列和行。下面是我的SQL语句。然而,我不知道如何正确地创建这个语句,这个语句将如何编写 $query = "SELECT * FROM APPROVED WHERE DISTINCT CONCAT(P_NUMBER,'-',A_NUMBER) AS CNUMBER AND (STATUS = 'ACTIVE' OR STATUS = 'CLOSED' OR STATUS = 'CLOSING' OR STATUS

我希望创建一个select语句,当两行的连接不同时,在该语句中选择所有列和行。下面是我的SQL语句。然而,我不知道如何正确地创建这个语句,这个语句将如何编写

$query = "SELECT * FROM APPROVED 
  WHERE DISTINCT CONCAT(P_NUMBER,'-',A_NUMBER) AS CNUMBER 
  AND (STATUS = 'ACTIVE' OR STATUS = 'CLOSED' OR STATUS = 'CLOSING' OR STATUS = 'PENDING')"; 

DISTINCT用于列选择。有几种方法可以做到这一点:

SELECT DISTINCT CONCAT(P_NUMBER,'-',A_NUMBER) AS CNUMBER FROM APPROVED WHERE 
AND (STATUS = 'ACTIVE' OR STATUS = 'CLOSED' OR STATUS = 'CLOSING' OR STATUS =     'PENDING')
这样做应该和

SELECT * FROM APPROVED WHERE 
AND (STATUS = 'ACTIVE' OR STATUS = 'CLOSED' OR STATUS = 'CLOSING' OR STATUS =     'PENDING')
GROUP BY CONCAT(P_NUMBER,'-',A_NUMBER)

第二个不包括结果中的连接,第一个只包括连接。您需要指定要返回的所有列。

您确定这是以标记和标题的microsoft sql server为目标的吗?语法看起来是错误的。(
其中不相同
截止日期
明确)。。。或者这就是问题所在-如何将其转换为SQLServer语法?很抱歉,这已相应更新。我有一个引擎可以为mssql呈现mysql代码,但它无法工作。mssql没有函数
TO_DATE
我删除了TO_DATE。因此,如果我使用第二个查询,那么我将只提取不同的行,因为我不想提取具有相同CONCAT(P_NUMBER,“-”,a_NUMBER)项的行。是的,但请考虑如果有两行具有相同P_NUMBER和a_NUMBER,会发生什么。您想要其他列的哪些值?您可能需要一个分组函数,如maxist、SUM、AVERAGE、GROUP_CONCAT,以使这些列具有意义。例如,您有两行具有相同的P_编号和一个_编号,但一行的状态为“Closed”,另一行的状态为“Active”,您将获得其中一个值,但是你无法预测哪一个。因此,如果这两行有相同的P_数和A_数,那么我只需要其中一个结果的整行,然后我想忽略其余具有重复的P_数和A_数的结果。那么group by应该是
group by P_数,A_数
无需浓缩