我的輸入字符串中如何替換字符串中最後一個逗號的'&'字符?
Declare @ListOfContactType nvarchar(1000)
SET @ListOfContactType = 'Customer,Supplier,Financier,Employee'
請幫助我獲得輸出'Customer,Supplier,Financier & Employee'
注:字符串中@ListOfContactType可能會有所不同。
我的輸入字符串中如何替換字符串中最後一個逗號的'&'字符?
Declare @ListOfContactType nvarchar(1000)
SET @ListOfContactType = 'Customer,Supplier,Financier,Employee'
請幫助我獲得輸出'Customer,Supplier,Financier & Employee'
注:字符串中@ListOfContactType可能會有所不同。
Declare @ListOfContactType nvarchar(1000)
Declare @LastOccuredAt int
SET @ListOfContactType = 'Customer,Supplier,Financier,Employee'
SET @LastOccuredAt=LEN(@ListOfContactType) - CHARINDEX(',',REVERSE(@ListOfContactType))
print substring(@ListOfContactType,1,@LastOccuredAt) + ' & ' + substring(@ListOfContactType,@LastOccuredAt +2,(len(@ListOfContactType)[email protected]))
找到的最後一個實例,與CHARINDEX的幫助和替換與&使用stuff
功能。
DECLARE @LISTOFCONTACTTYPE NVARCHAR(1000)
SET @LISTOFCONTACTTYPE = 'CUSTOMER,SUPPLIER,FINANCIER,EMPLOYEE'
SELECT STUFF(@LISTOFCONTACTTYPE,
LEN(@LISTOFCONTACTTYPE) - CHARINDEX(',', REVERSE(@LISTOFCONTACTTYPE))+1, 1, ' & ') AS OUT_PUT
你必須在字符串中找到最後一個逗號。由於T-SQL沒有提供向後搜索的方法,因此技巧是從一開始就顛倒字符串和搜索。
LEN(@ListOfContactType) - CHARINDEX(',', REVERSE(@ListOfContactType))
會給你這個位置。然後,您可以用逗號STUFF
替換逗號,但請記住,您必須糾正一個字符的位置。所以
STUFF(@ListOfContactType, 1 + LEN(@ListOfContactType) - CHARINDEX(',', REVERSE(@ListOfContactType)), 1, ' & ')
應該給你想要的結果。
解決方案:
Declare @ListOfContactType nvarchar(1000);
Declare @Position int;
Set @ListOfContactType = 'Customer,Supplier,Financier,Employee';
Set @Position = CHARINDEX(',', REVERSE(@ListOfContactType));
select REVERSE(STUFF(REVERSE(@ListOfContactType), @position, 1, '&'))
預期輸出:
Customer,Supplier,Financier&Employee
反轉字符串的景氣指數,不是更換爲預期產出後再次反轉。
簡單,非常簡單的查詢:
Declare @ListOfContactType nvarchar(1000)
SET @ListOfContactType = 'Customer,Supplier,Financier,Employee'
select reverse(stuff(reverse(@ListOfContactType),charindex(',',reverse(@ListOfContactType)),1,' & '))
您可以在下面接受任何一個答案。如果它對你有幫助。 – Buddi