看板 Database 關於我們 聯絡資訊
※ 引述《howardandy (醉蒼穹)》之銘言: : ※ 引述《akhu (wait)》之銘言: : : 現在的TABLE是 : : 欄位一 欄位二 : : name date : : A-A 2011/6/17 12:00:00 : : A-B 2011/6/17 13:00:00 : : AA-A 2011/6/17 14:00:00 : : B_A 2011/6/18 14:00:00 : : B_B 2011/6/18 15:00:00 : : AA-A 2011/6/18 16:00:00 : : 我要如何去掉最後-A、-B、_A、_B : : 欄位一 欄位二 欄位三 : : name date newName : : A-A 2011/6/17 12:00:00 A : : A-B 2011/6/17 13:00:00 B : : AA-A 2011/6/17 14:00:00 AA : : B_A 2011/6/18 14:00:00 B : : B_B 2011/6/18 15:00:00 B : : AA-A 2011/6/18 16:00:00 AA : : 因為前面字串的字數不確定,所以我想從右邊開始抓兩個,卻不知如何下手@@ : : 有人可以教我一下嗎?謝謝 : 推文太久了,我直接回文.. : 下面不是MS SQL的寫法,您參考看看.... : -2 可用下面取代,是否有更精練的寫法,這樣詢問其他高手囉 : DECODE(INSERT(NAME, '_', 1), 0, : DECODE(INSERT(NAME, '-', 1),0,0, INSERT(NAME, '-', 1)), : INSERT(NAME, '_', 1)) 下面是MSSQL的寫法 沒有測試過,不確定有沒有問題 CASE WHEN CHARINDEX('_', name) > 0 THEN LEFT(name, CHARINDEX('_', name)-1) WHEN CHARINDEX('-', name) > 0 THEN LEFT(name, CHARINDEX('-', name)-1) ELSE name END 意思跟上面Oracle寫法差不多 缺點是要先知道出現的分隔號會有多少種類才能這樣寫 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.77.139
iFEELing:如果有REGEX可以用的話....就可以用 \w+ ... 06/26 11:22