仅当分隔符存在时才从嵌套 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 '%^%'
这是我用来从字段中解析用户名某些部分的查询
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 '%^%'