我在sql server中有这些数据,你可以在这里看到:
1/2
1/4
2/23
12/13
1/10
...
我需要将这些更改为001,001,002,012,001,..
我用它。但它不起作用
LEFT(SheetNumber,LEN(SheetNumber)-CHARINDEX('/',SheetNumber))
我的查询
SELECT [Id]
,LEFT(SheetNumber,LEN(SheetNumber)-CHARINDEX('/',SheetNumber))
,[SubmitDateTime]
FROM [SPMS2].[dbo].[Lines] where SheetNumber like '%/%'
答案 0 :(得分:3)
你不需要使用LEN。只需使用
LEFT(SheetNumber,CHARINDEX('/',SheetNumber) - 1)
要使它成为前面有0的3位数,你可以使用类似的东西
Right('000' + LEFT(SheetNumber,CHARINDEX('/',SheetNumber) - 1), 3)
答案 1 :(得分:2)
试试这个
{}
答案 2 :(得分:1)
试试这个
DECLARE @tbl TABLE(SheetNumber VARCHAR(100));
INSERT INTO @tbl VALUES
('1/2')
,('1/4')
,('2/23')
,('12/13')
,('1/10');
SELECT STUFF(
(
SELECT ',' + REPLACE(STR(LEFT(SheetNumber,CHARINDEX('/',SheetNumber) - 1),3),' ','0')
FROM @tbl
FOR XML PATH('')
),1,1,'');
结果
001,001,002,012,001