2015-05-20 6 views
0

У меня есть база данных, в которой определенный столбец в таблице имеет свои значения с фигурными скобками {789-uiuiun-990 ..} типа (varchar (128), null).Извлечение значения из столбца в SQL

Есть ли способ написать запрос, который дает мне результаты, удалив эти фигурные скобки.

i.e. select col from db ; ---> results with braces 

Как я могу изменить его, чтобы извлечь значение только и удалить фигурные скобки.

Благодаря

+3

попробуйте 'Выбрать LEFT (RIGHT (col, len (col) -1), len (col) -2) from db' Ожидающие скобки всегда первыми и последними char – Sachu

+0

Не могли бы вы объяснить это? Означает, как этот запрос даст ожидаемый результат? –

+0

@RahulParit Только столбец со значениями, снятыми с фигурными скобками. – Novak007

ответ

3

попробовать использовать правую и левую функции, чтобы сократить charachter в первый и последний

Select LEFT(RIGHT(col, len(col)-1),len(col)-2) from db 

Вы можете также использовать подстроку + Len функцию для достижения того же, как показано ниже

Select substring(col,2,(LEN(col)-2)) from db 
2

Используйте функцию SQL REPLACE, чтобы заменить все фигурные скобки пустыми пространствами.

образец кода удаления его

Declare @var varchar(100) = '{this is a value}' 

Select REPLACE(REPLACE(@var,'{',''), '}','') 

ваше значение:

Select REPLACE(REPLACE(col,'{',''), '}','') from db 
2

Использование substring:

SELECT SUBSTRING(col, 2, LEN(col) - 2) AS 'col' FROM db 

В общем, это то, где вы бы найти решение таких проблема: docs

2
declare @S varchar(128) 
set @S='{789-uiuiun-990..5567}' 
select substring (@s,2,LEN(@s)-2) 
Смежные вопросы