如何在 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' );
您可以使用以下查询来获得您想要的结果
使用 CHARINDEX
和 LEFT
以及 RIGHT
函数
select
LEFT(c1, CHARINDEX('\', c1) - 1) location
--,RIGHT(c1, CHARINDEX('\', c1) - 1) username
FROM Test
使用 CHARINDEX
和 SUBSTRING
函数
select
SUBSTRING (c1,0,CHARINDEX('\',c1)) location
--,SUBSTRING(c1,CHARINDEX('\',c1)+1,LEN(c1)) username
FROM Test
使用PARSENAME
function.however此方法不能超过三个\
喜欢 (abc\sam\eee\fff
)
Select
PARSENAME(replace(c1,'\','.'),2) location
--,parsename(replace(c1,'\','.'),1) username
FROM Test
我有一个 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' );
您可以使用以下查询来获得您想要的结果
使用 CHARINDEX
和 LEFT
以及 RIGHT
函数
select
LEFT(c1, CHARINDEX('\', c1) - 1) location
--,RIGHT(c1, CHARINDEX('\', c1) - 1) username
FROM Test
使用 CHARINDEX
和 SUBSTRING
函数
select
SUBSTRING (c1,0,CHARINDEX('\',c1)) location
--,SUBSTRING(c1,CHARINDEX('\',c1)+1,LEN(c1)) username
FROM Test
使用PARSENAME
function.however此方法不能超过三个\
喜欢 (abc\sam\eee\fff
)
Select
PARSENAME(replace(c1,'\','.'),2) location
--,parsename(replace(c1,'\','.'),1) username
FROM Test