iT邦幫忙

0

如何用 if 函數去轉換sql抓出的值 (不改SQL值)

  • 分享至 

  • xImage

adder.addItems(combo, "UserName", "select * from e where e.dep like '" + dept + "' ")

使用者使用下拉式選單,選取後會到資料庫尋找
select * from e where e.dep like '" + dept + "'
並將dep帶入

想問的是,假如dep是"資訊組",將資訊組改成"資訊部%",但下拉式選單一樣要顯示"資訊組",而資料庫卻要搜尋"資訊部%"

目前想到

if(dep == '資訊組') '資訊組'='資訊部%'
把字串資訊組改成"資訊部%"

再將"資訊部%"傳回上面select中的+ dept +,並搜尋

該怎麼寫?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
allenlwh
iT邦高手 1 級 ‧ 2017-04-27 15:42:11
最佳解答
select case dep when '資訊組' then '資訊部' else dep end AS dep from e where e.dep like '" + dept + "'
阿海 iT邦新手 2 級 ‧ 2017-04-27 16:12:29 檢舉

大大好
這樣改確實可以把文字資訊組改成資訊部
但資料庫收尋依舊是搜尋到資訊組的資料
我是想搜尋資訊部的資料

應該是說
下拉式選單選資訊組時
要like 資訊部%
但資訊部底下可能有很多種

  1. 資訊部
  2. 資訊部-資訊組硬體
  3. 資訊部-資訊組軟體
  4. 資訊部-資訊組DCC

下拉式選單只放資訊組
又要可以找到資訊部所有成員

allenlwh iT邦高手 1 級 ‧ 2017-04-28 08:28:18 檢舉

試著改用呼叫函數的方式來處理,會不會比較方便?
"select * from e where e.dep like '" + dept + "' "
改成"select * from funcName(dept)"

我要發表回答

立即登入回答