sql修剪和替换
我是否可以同时修剪和替换列的名称,以便将其分解为两部分?预期结果在nameL和nameR中sql修剪和替换,sql,sql-server-2008,sql-server-2012,Sql,Sql Server 2008,Sql Server 2012,我是否可以同时修剪和替换列的名称,以便将其分解为两部分?预期结果在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 问
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_
名字也一样,因为我穿的是固定尺寸的。我如何消除“u”并实现预期结果?
提前感谢您尝试组合使用
子字符串
和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
我假设
名称
列中始终有下划线符号。尝试组合子字符串
和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
我假设名称
列中始终有下划线符号。您可以使用:
SELECT RIGHT(name, LEN(name) - CHARINDEX('_', name)) AS nameR,
LEFT(name, CHARINDEX('_', name) - 1) AS nameL
FROM myTable
您可以使用:
SELECT RIGHT(name, LEN(name) - CHARINDEX('_', name)) AS nameR,
LEFT(name, CHARINDEX('_', name) - 1) AS nameL
FROM myTable
您需要看看如何使用charindex来找出uu发生的位置。然后您可以计算并使用LEFT和RIGHT来提取每个部分。对不起,rateName,忘记修改我的真实查询了。现在已经修复了,您需要看看如何使用charindex来找出uu发生的位置。然后您可以计算并使用LEFT和RIGHT来提取每个部分。对不起,rateName,忘记修改我的真实查询了。现在修好了