[英]Replacing first occurrence of character with one character and the second with another character in SQL
我有一個表,該表的列名可以包含帶引號的子字符串...“ substring” ...對於此表中的每一行,我需要將第一個出現的“替換為«,將第二個替換為»,每行只能包含一個帶引號的子字符串。
因此,如果我有類似“ fgh” abc” sdf的記錄,我想獲取此“ fgh«abc»sdf”
我無法為此提供解決方案。
首先是語法如何工作的示例
DECLARE @a varchar(max) = 'fgh"abc"sdf'
SELECT
stuff(stuff(@a, charindex('"', @a),1, '«'),
charindex('"', @a, charindex('"', @a) + 1), 1, '»')
結果:
fgh«abc»sdf
這是所需的查詢,其中col是列的名稱:
SELECT
stuff(stuff(col, charindex('"', col),1, '«'),
charindex('"', col, charindex('"', col) + 1), 1, '»')
FROM yourtable
您可以執行以下操作:
DECLARE @TmpVar VARCHAR(100)
SET @TmpVar = 'haha"substring"hehe'
SET @TmpVar = STUFF(@TmpVar, CHARINDEX('"', @TmpVar), 1, '«')
SET @TmpVar = REPLACE(@TmpVar, '"', '»')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.