我可以同时修剪和替换一个列的名称,这样我可以将它分成两部分吗?预期结果在nameL和nameR
中name nameL nameR
AB_1X AB 1X
AXG_3X AXG 3X
4G_12X 4G 12X
尝试使用此查询:
select *,
RIGHT(name, LEN(name)-4) as nameR,
LEFT(name, LEN(name)-4) as nameL
from myTable
问题在于它修剪如下:
nameL
AB_
AXG
4G_
同样适用于nameR,因为我采用的是固定大小。如何消除“_”并实现预期结果? 提前谢谢
答案 0 :(得分:3)
尝试结合substring
和charindex
函数:
DECLARE @t TABLE(name NVARCHAR(10))
INSERT INTO @t VALUES
('AB_1X'),
('AXG_3X'),
('4G_12X')
SELECT name,
SUBSTRING(name, 1, CHARINDEX('_', name) - 1) nameL,
SUBSTRING(name, CHARINDEX('_', name) + 1, LEN(name)) nameR
FROM @t
我假设name
列中始终有下划线符号。
答案 1 :(得分:2)
您可以使用:
SELECT RIGHT(name, LEN(name) - CHARINDEX('_', name)) AS nameR,
LEFT(name, CHARINDEX('_', name) - 1) AS nameL
FROM myTable