从字符串中删除第六个字符

时间:2014-02-10 18:56:03

标签: sql sql-server

我需要从sql中的nvarchar字符串中删除第六个字符。我需要在列的每一行上执行此操作。

例如:

111116111111

每条记录的长度为12个字符,因此我需要将其设为11个字符并删除6个字符。

任何人都可以帮助我吗?谢谢。

4 个答案:

答案 0 :(得分:3)

你可以做到

UPDATE table
set    column = LEFT(column,5) + RIGHT (column,6)

但也许某人有更好的方式来达到同样的结果。

答案 1 :(得分:0)

select left([ColumnName],5)+right([ColumnName],6)

如下:

declare @Something as nvarchar(12)
set @Something = '111116111111'

select @Something, left(@Something,5)+right(@Something,6)

如果它给出转换错误(例如无法将数据类型nvarchar转换为数字),则可能必须转换表达式的两边。

答案 2 :(得分:0)

您也可以使用 STUFF() 功能执行此操作。

DECLARE @STRING VARCHAR(20) = '111116111111'

SELECT STUFF(@STRING, 6, 1, '')

Result : '11111111111'

<强>更新

  UPDATE table
  SET Column_Name = STUFF(Column_Name, 6, 1, '')
  WHERE LEN(Column_Name) = 12

答案 3 :(得分:0)

您可以根据我们可以编写查询的长度有两种方法吗

declare @Something as nvarchar(12)
set @Something = '111116111111'

select  CASE WHEN LEN(@Something) >= 12 THEN STUFF(@Something,6,1,'')
ELSE @Something END 

or else 6 value is constant then we can use replace function 

declare @Something as nvarchar(12)
set @Something = '111116111111'
Select REPLACE(@Something,6,'')