簡體   English   中英

在SQL中用一個字符替換第一次出現的字符,然后用另一個字符替換第二個出現的字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM