iT邦幫忙

0

SQL 條件式 Update

想請問各位前輩大大…
如果我想把資料中所有 201712 開頭的字串全部改成 201801 開頭的…
請問我該怎麼下指令呀!?
感激不盡!

暐翰 iT邦大師 5 級 ‧ 2018-02-06 09:59:13 檢舉
假如有解答到,麻煩選為最佳答案 :)
1
暐翰
iT邦大師 5 級 ‧ 2018-02-06 09:55:06
最佳解答
--建立臨時表格
WITH 表格 AS (
    SELECT '201712xxxxxx'欄位
)
SELECT * INTO #表格 FROM 表格
SELECT * FROM #表格;

--資料中所有 201712 開頭的字串全部改成 201801 開頭
UPDATE  #表格
SET  欄位 = REPLACE (欄位, '201712', '201801') 
where  欄位 LIKE '201712%' --挑出201712開頭的欄位

就可以得出結果:

1.實際使用時把臨時表格換成你的表格就可以
2.注意我的寫法沒考慮 201712xxx201712這種情況
跑script會變成201801xxx201801
請細部處理

1
兩津勘吉
iT邦新手 5 級 ‧ 2018-02-06 09:55:53
Order From

Date
2017120101
2017120102
2017120103

SELECT REPLACE (Date, '201712', '201801')
FROM Order;

*****
Date
2018010101
2018010102
2018010103
1
做工仔人!
iT邦高手 1 級 ‧ 2018-02-06 09:56:43

update tablename set 欄位名稱='201801'+SUBSTRING(欄位名稱,7,2)
WHERE LEFT(欄位名稱,6)='201712'

cpc0935 iT邦新手 2 級 ‧ 2018-02-06 10:40:12 檢舉

Accurate!

0
untitled
iT邦新手 5 級 ‧ 2018-02-07 10:08:58

https://ithelp.ithome.com.tw/upload/images/20180207/20107761FgugsG0EPh.jpg
https://ithelp.ithome.com.tw/upload/images/20180207/201077616bVZXo60dF.jpg
https://ithelp.ithome.com.tw/upload/images/20180207/20107761FZp1YQFNsu.jpg

我要發表回答

立即登入回答