只有在分隔符存在的情况下,来自嵌套选择的不同子串?

时间:2016-02-01 16:45:11

标签: sql intersystems-cache

以下是我用来解析字段

中某些用户名的查询
SELECT SUBSTRING(UserName, CHARINDEX('^', UserName) + Len('^'),LEN(UserName) as un, 
FROM (
        SELECT TOP 10000 * 
        FROM SomeTable
        ORDER BY LocalDateTime DESC
)

问题是没有^的用户名是无关紧要的,我不想包含它们。我怎样才能做到这一点?例如,如果我有以下数据:

system1^name1
system2^name2
system3^name2
name3

我会收到这些结果:

name1
name2

注意:我不想修改内部查询。

1 个答案:

答案 0 :(得分:1)

我认为您只需在子查询或外部查询中添加条件:

SELECT SUBSTRING(UserName, CHARINDEX('^', UserName) + Len('^'), LEN(UserName) as un
FROM (SELECT TOP 10000 * 
      FROM SomeTable
      ORDER BY LocalDateTime DESC
     ) t
WHERE UserName LIKE '%^%'