2016-09-15 1 views
2

У меня есть эти данные в моей SQL Server:Получить нужное количество значения в SQL Server с помощью подстроку

1/2 
1/4 
2/23 
12/13 
1/10 
... 

мне нужно изменить их на 002,004,023,013,010,..

мне просто нужно выбрать конец (RIGHT) часть моего значения. Я получил левую часть, используя этот код до:

RIGHT('000' + LEFT(SheetNumber, CHARINDEX('/', SheetNumber) - 1), 3) 

ответ

5

Попробуйте это,

SELECT Right('000' + RIGHT(SheetNumber,LEN(SheetNumber) - CHARINDEX('/',SheetNumber)), 3) 

ИЛИ

SELECT RIGHT(REPLACE(@SheetNumber,'/','/000'),3) 
+0

спасибо, что это работает –

+1

Plus1 Мне нравятся ваши варианты. Элегантный. –

+0

такой же здесь. Второй вариант действительно хорош – GuidoG

3

Ваши были почти там

Declare @YourTable table (SheetNumber varchar(50)) 
Insert Into @YourTable values 
('1/2'), 
('1/4'), 
('2/23'), 
('12/13'), 
('1/10') 

Select right('000'+substring(SheetNumber,CHARINDEX('/',SheetNumber) + 1,10),3) 
From @YourTable 

возвращений

(No column name) 
002 
004 
023 
013 
010 
+0

Спасибо всем парням. –

3

Прежде всего, необходимо, чтобы получить правильную часть, как это:

declare @table table (SheetNumber varchar(10)) 
insert into @table values ('1/2') 
insert into @table values ('2/23') 

select Right(SheetNumber, len(SheetNumber) - CHARINDEX('/',SheetNumber)) from @table 

Это даст вам следующее:

2 
23 

Теперь построить на этом раздуть 0 перед ним

declare @table table (SheetNumber varchar(10)) 
insert into @table values ('1/2') 
insert into @table values ('2/23') 

select Right('000' + Right(SheetNumber, len(SheetNumber) - CHARINDEX('/',SheetNumber)), 3) from @table 

, и это даст вам следующее:

002 
023 
Смежные вопросы