Reputation: 7301
I have these data in my sql server as you can see here :
1/2
1/4
2/23
12/13
1/10
...
I need to change these to 001,001,002,012,001,..
I use this .but it doesn't work
LEFT(SheetNumber,LEN(SheetNumber)-CHARINDEX('/',SheetNumber))
My query
SELECT [Id]
,LEFT(SheetNumber,LEN(SheetNumber)-CHARINDEX('/',SheetNumber))
,[SubmitDateTime]
FROM [SPMS2].[dbo].[Lines] where SheetNumber like '%/%'
Upvotes: 2
Views: 101
Reputation: 67291
Try this
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,'');
The result
001,001,002,012,001
Upvotes: 1
Reputation: 2944
Try this
RIGHT('000' + LEFT(SheetNumber, CHARINDEX('/', SheetNumber) - 1), 3)
Upvotes: 2
Reputation: 2063
You dont need to use LEN. Just use
LEFT(SheetNumber,CHARINDEX('/',SheetNumber) - 1)
To make it into 3 digits with 0 in the front, you could use something like this
Right('000' + LEFT(SheetNumber,CHARINDEX('/',SheetNumber) - 1), 3)
Upvotes: 3