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,'{',''),'}','')
我的程序中有一个变量 (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,'{',''),'}','')