作者sammylee (Blue Sky..)
看板Database
標題[SQL ] 請教抓取欄位資料
時間Wed Sep 24 09:48:10 2014
資料庫名稱:SQL 2008
內容/問題描述:
各位好,我想請教sql抓字串的問題
目前有以下的table (名稱:attach)
no attachname
1 abc.doc
2 test.pdf
3 ptt.xlsx
4 ntu.docx
5 nccu.pdf
6 AAAA.doc
7 BBB.docx
如果我想要抓取,在這個table裡面有哪幾種副檔名
該怎麼下然令去抓字串呢?
因為我試用 substr 的方式,發現無法達成(因為檔名長度不同)
能否請教該怎麼抓出來有哪些副檔名被使用在attachnam欄位中呢
感謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.219.97.24
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Database/M.1411523293.A.966.html
1F:→ moyasi: 一樣用substr即可 先算出.在字串中的哪個位置 09/24 10:08
2F:→ moyasi: substr時再將該值+1就好 就可以抓到副檔名 09/24 10:09
3F:→ moyasi: 如果檔名中間也有.的話 方法也是一樣 09/24 10:11
4F:→ moyasi: 找出.在字串中最後出現的位置就好 09/24 10:12
感謝:)
我剛試了一個指令
select substring(attachnam,charindex('.',attachnam),len(attachnam)),attachnam
from attach
出來的結果再進行比對一下即可了 :)
※ 編輯: sammylee (61.219.97.24), 09/24/2014 10:29:16
5F:→ moyasi: oracle的話用instr(字串,'.',-1) 就好了 09/24 11:00
6F:→ moyasi: 沒用sql server所以不清楚指令是否能像oracle有-1 09/24 11:00
7F:→ moyasi: instr在pl/sql中抓取資料寫動態條件還滿常用到的 09/24 11:01
8F:→ moyasi: 很多情況不方便使用起訖區間 改用條件篩選的方式抓取資料 09/24 11:02