2014-11-26 2 views
1

я описание земли хранится следующим образом:SQL выбор между пространствами

NW 1/4 6 7 5 E 
NW 1/4 17 7 5 E 

мне нужно выводить его следующим образом:

NW6-7-5E 
NW17-7-5E 

Поскольку третья группировка символов может быть либо 1, либо 2 Я не могу использовать LEN для выбора. Я сумел получить это далеко:

Select Left(quartersection,2)+SUBSTRING(quartersection,8,CHARINDEX(' ',quartersection)-1)+'-' 

Где я застрял в выборе пунктов между 3-й и 4-го места и 4-го и 5-го места. Любая помощь приветствуется.

спасибо

+0

будет ли это фиксированный формат всегда? что здесь динамично? – DevelopmentIsMyPassion

ответ

4

Попробуйте это. Replace, Right, Left и Len строковые функции должны помочь вам

DECLARE @a VARCHAR(50)='NW 1/4 17 7 5 E ' --NW 1/4 6 7 5 E 

SELECT Replace(Replace(LEFT(@a, Len(@a)-3), ' 1/4 ', ''), ' ', '-') 
     + Replace(RIGHT(@a, 4), ' ', '') 

ВЫВОД: NW17-7-5E

1

с заменой, функции вещи и LEN:

create table #temp(quartersection varchar(20)) 

insert into #temp values('NW 1/4 17 7 5 E ') 
insert into #temp values('NW 1/4 2 7 6 E ') 

select * from #temp 

SELECT Replace(Stuff(Replace(Replace(Rtrim(quartersection), '1/4', ''), ' ', ''), Len(Replace(Replace(Rtrim(quartersection), '1/4', ''), ' ', '')) - 1, 1, ''), ' ', '-') 
FROM #temp 

enter image description here

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