SQL Server 如何获取SQL查询中斜杠后面的单词

yvgpqqbh  于 2022-11-28  发布在  其他
关注(0)|答案(2)|浏览(267)

我有一个类似“企业服务\企业事务与沟通(DP 19)”的日期
我想结果是这样的:
| A列|B栏|
| - -|- -|
| 企业服务|企业事务与沟通(DP 19)|
我已经尝试使用子字符串,但没有成功,我使用的是Microsoft SQL

jqjz2hbq

jqjz2hbq1#

DECLARE @AData VARCHAR(1000) = 'Corporate Services\Corporate Affairs & Communications(DP19)';

SELECT
    LEFT(@AData, CHARINDEX('\', @AData) - 1) AS [Column A],
    SUBSTRING(@AData, CHARINDEX('\', @AData) + 1, LEN(@AData)) AS [Column B];

我使用LEN(@AData)作为Column B中使用的SUBSTRING()函数的Length参数,但使用SUBSTRING() doesn't care,这有点作弊,所以没有坏处,也没有犯规:
长度
...如果start和length的总和大于expression中的字符数,则返回从start开始的整个值表达式。

ctehm74n

ctehm74n2#

您可以使用PARSENAME

declare @t table(ch varchar(max))
insert into @t values
(N'Corporate Services\Corporate Affairs & Communications(DP19)');

SELECT 
PARSENAME(REPLACE(ch,'\','.'),2) AS N'Column A' ,
PARSENAME(REPLACE(ch,'\','.'),1) AS N'Column B'
FROM @t

相关问题