如何在 select 中使用 Trim 查询 SQL 表中的数据

How to use Trim in select queries for data in SQL tables

我有一个 table,它将 AD 用户的数据存储在 abc\sam、abc\bill、xyz\Ramos 等列之一中。(domain\username )

我正在尝试使用 select 查询 trim 之后的任何内容\,只需将域及其位置提供给我即可。也就是说,在 trimming abc 例如 returns 作为 NorthEast,xyz returns SouthPacfic 等

请建议我如何为此写一个 SQL 查询

您可以使用 SUBSTRING 构建子字符串并使用 CHARINDEX 查找
反斜杠的位置:

SELECT SUBSTRING(column, CHARINDEX('\', column) + 1, LEN(column)) FROM yourtable;

您的数据

create  table test (c1 varchar(max));
insert into test values
('abc\sam'), 
('abc\bill'), 
('xyz\Ramos' );

您可以使用以下查询来获得您想要的结果 使用 CHARINDEXLEFT 以及 RIGHT 函数

select 
LEFT(c1, CHARINDEX('\', c1) - 1) location 
--,RIGHT(c1, CHARINDEX('\', c1) - 1) username
FROM Test

使用 CHARINDEXSUBSTRING 函数

select 
SUBSTRING (c1,0,CHARINDEX('\',c1)) location
--,SUBSTRING(c1,CHARINDEX('\',c1)+1,LEN(c1)) username
FROM Test

使用PARSENAMEfunction.however此方法不能超过三个\ 喜欢 (abc\sam\eee\fff)

Select 
PARSENAME(replace(c1,'\','.'),2) location 
--,parsename(replace(c1,'\','.'),1) username
FROM Test

dbfiddle