作者mathrew (Joey)
看板Database
標題[SQL ] 如何在查詢時, 顯示某個字元區段?
時間Thu Feb 9 21:19:36 2012
我的資料內容如下:
A | B | C |
---------------------------------------
123,456,10.1.1.1 | joey | iphone |
231,353,10.1.1.2 | steve | android |
214,593,10.1.1.3 | jacky | windows |
A 欄位內容只想查詢第二個","以後的資料, 也就是呈現結果會變成如下:
A | B | C |
---------------------------------------
10.1.1.1 | joey | iphone |
10.1.1.2 | steve | android |
10.1.1.3 | jacky | windows |
單純用 T-SQL 有辦法做得到嗎?
還是需要 BCP 出來後 用 Shell Script 去處理?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.189.132
1F:→ fantasyj:固定a欄位第7碼後嗎 substr(a,7) as a 02/09 21:40
2F:→ fantasyj:錯了.. substr(a, 9) as a 02/09 21:41
樓上的方式 會試看看, 不過又想到另一個問題, 原始資料如果是這樣呢?
A | B | C |
---------------------------------------
123,1,10.1.1.11 | joey | iphone |
231,12,10.1.1.101 | steve | android |
214,123,10.1.1.3 | jacky | windows |
也就是第二個"," 前後 都是沒有固定有多少字元 , 那麼 T-SQL 要怎麼寫, 感恩!!
※ 編輯: mathrew 來自: 122.116.189.132 (02/10 07:53)
3F:推 TeemingVoid:以 CHARINDEX(',', A, 1) 可找到第一個逗號位置, 02/10 10:25
4F:→ TeemingVoid:連用兩次即可找出第二個逗號位置: 02/10 10:25
5F:→ TeemingVoid:CHARINDEX(',', A, CHARINDEX(',', A, 1) + 1) 02/10 10:25
6F:→ TeemingVoid:例如: 02/10 10:26
7F:→ TeemingVoid:SELECT SUBSTRING(A, CHARINDEX(',', A, 02/10 10:26
8F:→ TeemingVoid: CHARINDEX(',', A, 1) + 1) + 1, 999) from ... 02/10 10:26
9F:→ mathrew:非常感恩, 等等去試試 !!!! 02/10 16:51