如何從文本列中洗掉字符 =、?、 、- 和 @,但前提是它們作為前綴出現在字串中?
例如:
| 輸入 | 輸出 |
|---|---|
#Stackoverflow |
Stackoverflow |
@#StackOverflow |
Stackoverflow |
=? -Stackoverflow |
Stackoverflow |
uj5u.com熱心網友回復:
假設“前綴”意味著洗掉第一個非特殊字符左側的字符,但字串后面的特殊字符應該保留:
with data as (
select '@#StackOverflow' string union all
select '=? Stack#@Overflow' union all
select 'Stack#@Overflow'
)
select * , Stuff(string,1,p.pos-1,'')
from data
cross apply(values(PatIndex('%[^=? -@#]%',string)))p(pos);
| 原來的 | 固定的 |
|---|---|
| @#堆疊溢位 | 堆疊溢位 |
| =? 堆疊#@溢位 | 堆疊溢位 |
| 堆疊溢位 | 堆疊溢位 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474593.html
上一篇:使用CTE按天和小時捕獲體積計數
