sql 去除 varchar 中前导字符和尾随字符的最佳方法

sql best way to get rid of leading and trailing characters in a varchar

我的程序中有一个变量 (varchar),其中包含如下内容:

{A6DF61AB-8CBF-4E1C-890B-15A7710C7D9C}

我应该怎么做才能拥有

A6DF61AB-8CBF-4E1C-890B-15A7710C7D9C 

(不带“{”和“}”)?

长度始终相同且前导字符和尾随字符始终相同

SELECT  SUBSTRING(@string, 2, LEN(@string) - 2);

Substring 将为您完成这项工作。它的工作方式是从第二个字符开始获取字符串(不包括第一个字符)并使用字符串本身的长度减去最后一个字符。

CREATE TABLE #SampleData (StringValue nvarchar(100))
INSERT INTO #SampleData
VALUES 
('{A6DF61AB-8CBF-4E1C-890B-15A7710C7D9C}')

SELECT
    StringValue
    ,SUBSTRING(StringValue,2,LEN(StringValue)-2) NewValue
FROM #SampleData

DROP TABLE #SampleData

结果;

StringValue                             NewValue
{A6DF61AB-8CBF-4E1C-890B-15A7710C7D9C}  A6DF61AB-8CBF-4E1C-890B-15A7710C7D9C

您可以很方便地进行如下操作:

declare @data varchar(100)
set @data='{A6DF61AB-8CBF-4E1C-890B-15A7710C7D9C}'
select replace(replace(@data,'{',''),'}','')