我有一個只有一列和大約 3000 行的表格,它們遵循相同的模式。我想在行中同一字串中的每個 TIME 的字串開頭包含星期幾。
原表:
| DATA_TIME_COMBINATION |
|---|
| 星期一上午 3 點(英國時間),上午 5 點(美國時間),晚上 10 點(美國時間) |
| 星期六上午 6 點,我們下午 5 點 |
| 周日 周五 AN 50 TU,FG 55 RE, DC 56 JJ |
| 星期二上午 10 點、凌晨 5 點、凌晨 1 點 |
| 星期三中午 12 點至晚上 9 點至凌晨 1 點 |
需要的結果:
| DATA_TIME_COMBINATION |
|---|
| 周一凌晨 3 點(英國時間),周一上午 5 點(美國時間),周一晚上 10 點(美國時間) |
| 星期六上午 6 點,星期六下午 5 點 |
| 周日周五 AN 50 TU,周日周五 FG 55 RE,周日周五 DC 56 JJ |
| 周二早上 10 點,周二早上 5 點,周二凌晨 1 點 |
| 星期三中午 12 點至星期三晚上 9 點至星期三凌晨 1 點 |
提前致謝!
uj5u.com熱心網友回復:
似乎您想用逗號和字串開頭的第一個單詞替換逗號
select replace(DATA_TIME_COMBINATION, ',',
concat(',', substr(DATA_TIME_COMBINATION,1,charindex(' ', DATA_TIME_COMBINATION)-1)))
from my_table
uj5u.com熱心網友回復:
一旦你知道了性格和日子。
然后它會變成一個簡單的替換。
一個十字架適用于作業日。
一個角色就位的一秒鐘。
SELECT
REPLACE(REPLACE([DATA_TIME_COMBINATION], chr, chr ' ' days ' '),' ',' ') as DATA_TIME_COMBINATION
FROM mytable AS t
CROSS APPLY (
SELECT STRING_AGG(value, ' ') days
FROM STRING_SPLIT(
LEFT([DATA_TIME_COMBINATION], PATINDEX('%[a-z] [0-9]%', [DATA_TIME_COMBINATION])), ' ') spl
WHERE value LIKE '
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/374177.html
標籤:sql sql-server 查询语句
上一篇:如何有效地更新依賴于先前記錄的表
下一篇:在表格中尋找重疊
