检查列中的相同字符值

时间:2016-06-09 20:00:37

标签: sql sql-server tsql

我试图验证列何时具有同一组的所有相同值。以下是我的表格数据示例:

Sample Data

例如,使用这些数据。我想检查Status的所有值是否与具有相同TPID的每一行相同。因此,TPID 60210应该为True,因为两个项目都有Status个A.但是,TPID 60061应该导致错误,因为Line_Item中有两个显示A,其余的p上。

我打算使用此信息更新其他表,并使用CASE语句设置其status。但我不知道如何检查这个专栏以找到我想要的价值。

1 个答案:

答案 0 :(得分:1)

据我所知,你可能想要这样的东西: -

;WITH CTE_Count
AS
(
   SELECT TPID, COUNT(DISTINCT Status) CNT
   FROM TableName
   GROUP BY TPID
 )

 UPDATE AnotherTableName
 SET ColumnName = (
   CASE WHEN CTE_Count.CNT = 1 -- all row has same status
      THEN SomeValue
    ELSE SomeOtherValue END
)
FROM AnotherTableName
INNER JOIN CTE_Count ON ...

希望它有帮助&让我知道,我想念任何事情。