[SQL ] 如何在查詢時, 顯示某個字元區段?

看板Database作者 (Joey)時間12年前 (2012/02/09 21:19), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串1/1
我的資料內容如下: 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

02/09 21:40, , 1F
固定a欄位第7碼後嗎 substr(a,7) as a
02/09 21:40, 1F

02/09 21:41, , 2F
錯了.. substr(a, 9) as a
02/09 21:41, 2F
樓上的方式 會試看看, 不過又想到另一個問題, 原始資料如果是這樣呢? 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)

02/10 10:25, , 3F
以 CHARINDEX(',', A, 1) 可找到第一個逗號位置,
02/10 10:25, 3F

02/10 10:25, , 4F
連用兩次即可找出第二個逗號位置:
02/10 10:25, 4F

02/10 10:25, , 5F
CHARINDEX(',', A, CHARINDEX(',', A, 1) + 1)
02/10 10:25, 5F

02/10 10:26, , 6F
例如:
02/10 10:26, 6F

02/10 10:26, , 7F
SELECT SUBSTRING(A, CHARINDEX(',', A,
02/10 10:26, 7F

02/10 10:26, , 8F
CHARINDEX(',', A, 1) + 1) + 1, 999) from ...
02/10 10:26, 8F

02/10 16:51, , 9F
非常感恩, 等等去試試 !!!!
02/10 16:51, 9F
文章代碼(AID): #1FCyViTd (Database)