我有以下专栏,我希望在第一个':'之后和第二个':'之前提取字符,请帮助我。我正在使用SQL Server Express。提前谢谢你。
BN:wagtz2dp01:DPS
BN:wagtzdp02:DPS
BN:wagb2b2dp01:DPS
BN:wagtzdp20:DPS
BN:wagtzdp04-LOYALTY:DPS
BN:wagb2b01:DPS
我想要以下输出:
wagtz2dp01
wagtzdp02
wagb2b2dp01
wagtzdp20
wagtzdp04-LOYALTY
wagb2b01
答案 0 :(得分:0)
考虑到你有一个包含[[Text]列的表格,你可以试试。
select
SUBSTR([Text], CHARINDEX(':', [Text]), CHARINDEX(':', [Text],CHARINDEX(':', [Text])+1)))
FROM table_name
答案 1 :(得分:0)
使用SUBSTRING
和CHARINDEX
SELECT Substring(string, Charindex(':', string) + 1, Charindex(':', string, Charindex(':', string) + 1) - Charindex(':', string) - 1) as Middle_chars
FROM (VALUES ('BN:wagtz2dp01:DPS' ),
('BN:wagtzdp02:DPS' ),
('BN:wagb2b2dp01:DPS' ),
('BN:wagtzdp20:DPS' ),
('BN:wagtzdp04-LOYALTY:DPS' ),
('BN:wagb2b01:DPS' ))tc(string)
结果:
╔═══════════════════╗
║ Middle_chars ║
╠═══════════════════╣
║ wagtz2dp01 ║
║ wagtzdp02 ║
║ wagb2b2dp01 ║
║ wagtzdp20 ║
║ wagtzdp04-LOYALTY ║
║ wagb2b01 ║
╚═══════════════════╝