我需要从sql中的nvarchar
字符串中删除第六个字符。我需要在列的每一行上执行此操作。
例如:
111116111111
每条记录的长度为12
个字符,因此我需要将其设为11
个字符并删除6
个字符。
任何人都可以帮助我吗?谢谢。
答案 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,'')