iT邦幫忙

0

SQL語法截文字問題請教

sql
  • 分享至 

  • xImage

不好意思,有個SQL問題想請教各位前輩,
以下清單的資料來說的話,目前的共通點是-1,-2是固定的,請問我要使用何語法才能抓到-1跟-2,去判斷是A檔案或者是B檔案這樣呢??
111-1.pdf(A檔案)
111-2.pdf(B檔案)
99-1.pdf(A檔案)
99-2.pdf(B檔案)
1-1.pdf(A檔案)
1-2.pdf(B檔案)
不好意思,再麻煩各位前輩了,謝謝!!!

substr( 欄位, -2 )
Like應該是
-1.
-2.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
glj8989332
iT邦研究生 4 級 ‧ 2020-08-19 15:57:51

likecase when

用MySQL測試OK

表格


CREATE TABLE IF NOT EXISTS `docs` (
  `id` int(6) unsigned NOT NULL,
  `fileName` varchar(200) NOT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`, `fileName`) VALUES
  ('1', '111-1.pdf'),
  ('2', '111-2.pdf'),
  ('3', '99-1.pdf'),
  ('4', '99-2.pdf');

Select

select 
CASE 
  WHEN a.fileName LIKE '%-1%' THEN 'A檔案'
  WHEN a.fileName LIKE '%-2%' THEN 'B檔案'
ELSE '' END AS FileType
  from `docs` as a;
1
japhenchen
iT邦超人 1 級 ‧ 2020-08-20 07:55:12

簡單版(假設你的檔案只有PDF, *1.pdf 為A檔,*2.pdf 為b檔,upper硬轉大寫 )

SELECT CASE WHEN UPPER(RIGHT(FILENAME,5))='2.PDF' THEN 'B' ELSE 'A' END FILETYPE 
FROM YOURTABLE 
WHERE .......

畫蛇添足版(取檔名 . 的左邊的所有文字,再取最右邊那個字)

SELECT CASE WHEN RIGHT(LEFT(FILENAME,CHARINDEX('.',FILENAME)-1),1)='1' THEN 'A' ELSE 'B' END FILETYPE 
FROM YOURTABLE 
WHERE .....
klm2242 iT邦研究生 1 級 ‧ 2020-10-14 10:35:26 檢舉

謝謝你!!!

我要發表回答

立即登入回答