2017-04-15 171 views
0

如何將字符串從另一個字符串中的特定位置插入到數據庫中的列中。與我在表中名爲Name的列名world.Name中的列有值Test.How在第二個字符串名中插入從測試後的位置來看,測試應該成爲最新的。SQL追加字符串

Database name :World 
Table Name :Name 
A Value in Name Table: Test 
Desired output: Te-New-st- 
(That is adding string "New" afer 2nd position in "Test" string.) 
+0

編輯你的問題,並提供(1)樣本數據; (2)期望的結果; (3)標記您正在使用的數據庫。 –

+0

我正在使用SQL開發人員或mysql workbech。 –

回答

0

對於SQL Server

--Original String 
DECLARE @orgString varchar(50) = 'This is some test string' 
--Search String 
DECLARE @searchString varchar(50) = 'te' 
--String to insert into the original string 
DECLARE @insertString varchar(50) = 'NEW' 

SELECT 
CONCAT(SUBSTRING(@orgString,1,CHARINDEX(@searchString,@orgString)+1), 
      @insertString, 
SUBSTRING(@orgString,CHARINDEX(@searchString,@orgString)+2,LEN(@orgString))) 
AS String 

要在表上運行這樣的事情對數據,與您的列名

--Search String 
DECLARE @searchString varchar(50) = 'te' 
--String to insert into the original string 
DECLARE @insertString varchar(50) = 'NEW' 

SELECT CONCAT(SUBSTRING(Name,1,CHARINDEX(@searchString,Name)+1), 
      @insertString, 
SUBSTRING(Name,CHARINDEX(@searchString,Name)+2,LEN(Name))) 
AS String 
FROM Table_1 

代替原來的字符串變量如果是總是將在第二和第三的位置之間,你可以簡化它到這一點。

--String to insert into the original string 
DECLARE @insertString varchar(50) = 'NEW' 

SELECT CONCAT(SUBSTRING(Name,1,2), 
       @insertString, 
       SUBSTRING(Name,3,LEN(Name))) 
      AS String 
FROM Table_1 

看看這個字符串函數引用,String Functions