问题描述:
SQL Server 2005
在得到一个数据传入的时候,希望能够按照分隔符分割其数据,去掉其中一个数据
比如:传入的参数为字符串 XX_YY_ZZ_L123
那么我希望得到的数据是 XX_YY_ZZ
去掉的部分为最后面的那个(具体几个分隔符不固定),且规则为字母+数字 A1,B23,C876等(不能判断也无妨,可以的话就更好了~~)
希望这么做的原因是:传入的是一个小类,然后可以根据这个小类去掉后面的分类符号(字符+数字)来得到一个大类的字符串。
SQL貌似没有内置函数SPLIT(),对SQL语法也不是很熟悉,只会基础的语法。
万分感谢。
CREATE PROCEDURE [dbo].[insert_data]
@Test_Line varchar(50)
AS
SET NOCOUNT ON
DECLARE @Test VARCHAR(50)
-- 如何根据 @Test_Line 来获取 @Test
-- 插入操作
......
------解决思路----------------------
你要的是把最后一个_后面的数据去掉?
------解决思路----------------------
-- 如何根据 @Test_Line 来获取 @Test
SET @Test_Line = REVERSE(@Test_Line)
SET @Test = SUBSTRING(@Test_Line, CHARINDEX('_',@Test_Line)+1,50)
SET @Test = REVERSE(@Test)