[英]sql trim and replace
Can i trim and replace at the same time a column's name so i can break it down in two parts? 我可以同时修剪和替换列的名称,以便将其分为两部分吗? The expected result is in nameL and nameR
预期的结果在nameL和nameR中
name nameL nameR
AB_1X AB 1X
AXG_3X AXG 3X
4G_12X 4G 12X
Tried using this query: 尝试使用此查询:
select *,
RIGHT(name, LEN(name)-4) as nameR,
LEFT(name, LEN(name)-4) as nameL
from myTable
The problem is that it trims like this: 问题是它像这样修剪:
nameL
AB_
AXG
4G_
same for nameR, because i'm taking a fixed size. 对于nameR也是一样,因为我的尺寸固定。 How can I eliminate "_" and achieve the expected outcome?
如何消除“ _”并达到预期结果? Thank you in advance
先感谢您
Try with combination of substring
and charindex
functions: 尝试结合使用
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
I assume that there is always underscore symbol in name
column. 我假设
name
列中总是有下划线符号。
You can use: 您可以使用:
SELECT RIGHT(name, LEN(name) - CHARINDEX('_', name)) AS nameR,
LEFT(name, CHARINDEX('_', name) - 1) AS nameL
FROM myTable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.