仅当分隔符存在时才从嵌套 select 中区分子字符串?

Distinct substring from nested select only if delimiter exists?

这是我用来从字段中解析用户名某些部分的查询

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

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

我认为你可以在子查询或外部查询中添加一个条件:

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