台灣最大程式設計社群網站
線上人數
1249
 
會員總數:241740
討論主題:187051
歡迎您免費加入會員
討論區列表 >> MS SQL >> update A from B 多重條件
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
update A from B 多重條件
價值 : 50 QP  點閱數:335 回應數:5

樓主

OMG
門外漢
0 77
959 41
發送站內信


請教
update A set A.A1 = B.B1 from A inner join B on A.A2 = B.B2

想在B2 中增加"All"的資料,若資料有A2對應不到B2時則找 B2='All'
的資料,請問該怎麼寫比較好呢?

搜尋相關Tags的文章: [ 多重條件 ] ,
本篇文章發表於2017-11-28 22:24
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

P陳
檢舉此回應
題目比答案難很多...............
本篇文章回覆於2017-11-29 16:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

P陳
檢舉此回應
樓主能請您用個實例來講嗎?
本篇文章回覆於2017-11-29 16:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
一般來說,這會需要多重join來處理。

不過我不確定我這樣的寫法是否可以在mssql上使用。
但將原理給你一下



不過正規來說,其all的值因該都是統一一個值才對。(因為也沒辦法對到其它值了吧)
所以我會偏向用程式來處理會對你比較好。不一定要利用sql來做這件事。
畢竟這樣的處理是吃力不討好的事。
本篇文章回覆於2017-11-29 17:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

一頁書
檢舉此回應
我會二次UPDATE,比較好找問題,執行效率也不差
第一次UPDATE A.A1= B.B1 ,第二次找 A.A1 為空白,UPDATE A.A1= B.B2
不過你的題目還真看不太懂
本篇文章回覆於2017-12-07 07:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
如果 Update 的條件很複雜,我建議使用 Temp Table 方式先將條件值以及要更新的值記錄起來。
再利用 Cursor 方式逐步更新比較保險。
Temp Table 教學,請參考:http://deanma.blogspot.tw/2012/01/ms-sql-temp-table.html
T-SQL Cursor 教學,請參考:https://dotblogs.com.tw/dorlis.tsao/2010/10/14/18344

PS:請將這堆方式寫成 Stored procedure 以利日後方便呼叫,事半功倍。
祝您早日解決問題,祝福您。
本篇文章回覆於2017-12-16 23:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.