2015-05-20 67 views
0

我有一個數據庫,其中表中的某個列的值爲大括號{789-uiuiun-990 ..}(varchar(128),null)。從列中提取SQL的值

有沒有辦法編寫一個查詢,通過刪除大括號給出結果。

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

我該如何修改它才能提取值並移除大括號。

感謝

+3

嘗試'從數據庫'選擇左(右(col,len(col)-1),len(col)-2)大括號始終是第一個和最後一個字符 – 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)