我们如何从下表(10条记录)中获取唯一的userId列表?
这是规则:比较userId时,仅搜索以'AB'开头的用户ID及其匹配的重复项('AB'除外)。然后,仅通过返回开头没有“ AB”的重复的userId来获得“唯一的userId”的列表。
我知道这听起来令人困惑,请参见下面的示例:
具有10条记录的表 UserName 及其 userId 字段(10条记录)是:
ABC1234
C1234
C12345
BC12345
BBC1234
ABF1235
F1235
BCD3456
D3456
DE3456
所需结果:
C1234
F1235
我在下面使用了一些查询,但发现它根本无法解决问题。这个问题比我想象的要复杂得多,因为我不知道如何确保只找到以'AB'开头的用户ID及其重复(但开头没有'AB')。
SELECT
COUNT(DISTINCT CASE WHEN LEFT(userId, 2) IN ('AB') THEN SUBSTRING(userId, 3)
ELSE userId
END) AS co_count, userId
FROM UserName c where userId like 'AB%';
感谢您的帮助或提示!
答案 0 :(得分:0)
查看结果似乎只是在寻找字符串开头为'AB'而没有'AB'的左侧
SELECT distinct substr(userId , -(length(userID)-2))
from UserName
where userId like 'AB%';
对于包括所有以'AB'开头的行,您可以使用UNION
SELECT substr(userId , -(length(userID)-2))
from UserName
where userId like 'AB%'
UNION
SELECT userId
from UserName
where userId NOYT like 'AB%'