2014-02-10 23 views
1

我需要刪除sql中的nvarchar字符串中的第六個字符。我需要在列的每一行上執行此操作。刪除字符串中的第六個字符

例如:

111116111111 

每個記錄的長度爲12字符,所以我就需要使它11字符,並刪除6日。

誰能幫助我?謝謝。

+0

這些都解決了,謝謝。 – Jeff

回答

3

你可以只是做

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

但也許有人達到相同的結果的華麗的方式。作爲

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數據類型爲數字),您可能需要投表達的兩側。

0

您也可以使用STUFF()功能。

DECLARE @STRING VARCHAR(20) = '111116111111' 

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

Result : '11111111111' 

UPDATE

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

喜有2種方式做基礎上的長度,我們可以寫出這樣的查詢

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,'')