when語句實現不同條件下更新同一張資料表的不同字段

時間 2021-10-14 22:24:01

1樓:

現有資料表t_data(id, type ,field1, field2)。

現在希望寫一條update語句,實現當type='a'時更新field1的值為'x',當type='b'時更新field2的值為'x'。

update t_data set field1=(case when type='a' then 'x' else filed1 end)

,filed2=(case when type='b' then 'x' else filed2 end)

where ***

2樓:匿名使用者

需要複製一段**,帶入後即可更新一張資料表的不同字段,具體如下:

複製** **如下:

update mytable

set myfield = case idwhen 1 then 'value'

when 2 then 'value'

when 3 then 'value'

endwhere id in (1,2,3)這裡使用了case when 這個小技巧來實現批量更新。

舉個例子:

複製** **如下:

update categories

set display_order = case idwhen 1 then 3

when 2 then 4

when 3 then 5

endwhere id in (1,2,3)這句sql的意思是,更新display_order 字段,如果id=1 則display_order 的值為3,如果id=2 則 display_order 的值為4,如果id=3 則 display_order 的值為5。

即是將條件語句寫在了一起。

這裡的where部分不影響**的執行,但是會提高sql執行的效率。確保sql語句僅執行需要修改的行數,這裡只有3條資料進行更新,而where子句確保只有3行資料執行。

3樓:之何勿思

可使用case when來實現這個條件,需要巢狀子查詢語句,sql語句**示例如下:

1、首先你這裡的不同字段應該有個優先級別,類似先判斷哪個字段然後判斷哪個字段。如果僅僅以字段和字段值來作為條件 用decode 套 decode 直到符合你的邏輯需求。

2、如果牽扯到兩個字段值的比較。例如:如果欄位a等於欄位b則顯示*** 這種判斷請使用nullif配合decode也可以用when case   (9以前可能不支援nullif)。

舉例如下:

1、資料表為demotable,欄位有id, condition1,condition2,condition3,condition4,condition5

2、要求是查詢demotable中,condition1,condition2,condition3,condition4,condition5五個欄位中符合任意兩個或兩個以上的條件的內容。

4樓:匿名使用者

update t_data set field1=(case when type='a' then 'x' else filed1 end)

,filed2=(case when type='b' then 'x' else filed2 end)

where ***

5樓:驛路開花

答案在這裡

update t_data set field1=(case when type='a' then 'x' else filed1 end)

,filed2=(case when type='b' then 'x' else filed2 end)

where ***

一條sql update如何同時更新兩個欄位的值按不同條件

6樓:匿名使用者

能,但是你說的不清楚,寫個語句你看看,能否受到啟示。

update 表名 set 欄位1= case when 條件版1 then 1 else 0 end, 欄位2= case when 條件2 then 0 else 1 end

意思你理解了,權就會寫了,這裡的值我用1和0代替的,具體的看你的是啥了。

用case when 你去研究研究這個語法。呵呵。

sql中的update如何根據不同條件修改多條資料的同一列 10

7樓:娛樂小八卦啊

如果只需要更新乙個字段,mysql和oracle語法是一樣的,在 set 後面跟乙個子查詢即可。

現在需要同時更新內2個字段,最不容經過大腦思考的方法就是 「為每個 set 後面都跟乙個子查詢」,但是假如要 set 十個字段或者更多字段,很顯然,這樣在效能上是很不合適的方法。

同時更新多個欄位在mysql和oracle中的方法是不一樣,mysql需要連線表,oracle使用 set(...) 即可。

擴充套件資料

sql更新語句中update用法:

語法:update 表名稱 set 列名稱 = 新值 where 列名稱 = 某值

更新某一行中的乙個列

為 lastname 是 "wilson" 的人新增 firstname:

update person set firstname = 'fred' where lastname = 'wilson'

請注意 sql update 語句中的 where 子句!

where 子句規定哪條記錄或者哪些記錄需要更新。如果您省略了 where 子句,所有的記錄都將被更新!

8樓:匿名使用者

可以啊修改where條件

update abc set a=1 where id=1 or id=2

你給的例句有問題啊,表名abc,後面寫的是a.id

9樓:傲雪

update abc set abc.a=1 where a.id in (1,2),字元型別加''號

10樓:工業分析中

修改學生bai表中性別列,如果是du男,就修改zhi為1,如果是女就修改dao為0,其他情況為專2

請參照如下語屬句修改執行:

update student set *** = (case when ***='男' then 1 when ***='女' then 0 else 2 end) where 1=1

sql語句更新資料庫中乙個表中同一字段(根據其他字段)賦予不同值

11樓:匿名使用者

update jiage set price=case when uid>0 and uid<=5 then '$a' when uid>5 and uid<=10 then '$b' when uid>10 and uid<=20 then '$c' end

貌似你那語句有地方寫錯了,怎麼又大於10又小於等於10的

sql語句中有更新同乙個欄位下,不同行給予不同值的嗎?(用一句sql搞定)

12樓:sql的藝術

update

set欄位名zhi=case when 欄位名x='a' then 1  when 欄位名x='b' then 2 else 3 end

from

表名where

條件dao1

and 條件2

....

使用case語句,即可做版到你得要權求

在sql中表中資料同一列資料根據不同條件資料顯示成兩列,sql語句怎麼寫? 原資料

13樓:_冰河

看表結構

lbbh欄位是指類別編號,

fjbh欄位應該是上級的類別編號

但樓主的表述真的不清楚,我都不知你最後要輸出神馬?

14樓:匿名使用者

用case when,比如我的如下:

/***sql 根據不同狀態,顯示不同列

**/select

date(t.add_time) as add_time,ifnull(sum(case when t.`status`=0 then trade_money end ),0) as unsend_trade_money,

ifnull(sum(case when t.`status`=1 then trade_money end ),0) as send_trade_money,

count(1) as countpeoplefrom lr_red_pocket_log tgroup by date(t.add_time);

你再自己根據這樣的去改吧。

15樓:不知光年

有沒有看完沒矇圈的,上來翻譯一下。

oracle,sql語句同一表中同一字段不同條件count(*) 5

16樓:匿名使用者

樓主抄 這個問題很簡單嘛 就是分組即可

假如第一列字

段是col1 第二列的字段是col2

select col2,count(1) col1 from tbname

group by col2

17樓:徘徊行忍

典型的case when 語句塊可以bai解決.先對映表的檢視du,新增條zhi件過濾

例如性別為m的和dao為f的分別計數專name,可以寫成屬:select b1.***, count(b1.name)from ((select bh.*,

(case when ***= 'm' then 1 else 0 end) as qty /*此處可寫多個when*/

from user_d bh) b1)

group by b1.***

18樓:匿名使用者

select substr(abc,1,5),count(*)from tbname

where kprq

group by substr(abc,1,5)

19樓:匿名使用者

select 1,count(*)

from 表名

group by 1

什麼地質條件下用正迴圈鑽機,什麼地質條件下用反迴圈鑽機

無語翹楚 正迴圈鑽機和反迴圈鑽機,都是通過鑽井液 泥漿 的迴圈進行保護鑽井井壁和出渣的,即通過鑽井液 泥漿 的迴圈,把鑽孔裡的鑽渣帶出來。它們在鑽進成孔的工藝上是相同的,適用的地層也基本相同。不同的就是鑽井液 泥漿 的迴圈方式。正迴圈鑽機的鑽井液 泥漿 是由泥漿幫浦從泥漿池裡抽到鑽桿裡,通過鑽桿不斷...

在相同條件下,解釋不同狀態的物質的熔 沸點的定義。例如解釋什

乘興運 熔點指的是物體在到達某個固定的溫度時會由固態變為液態,沸點指的是液體到達某一溫度時直接變為氣態,碘是個例外 20 在相同條件下,解釋不同狀態的物質的熔 沸點的定義。例如解釋什麼是固體或氣體的熔沸點 由於物質的性質不同,所以它們的聚合狀態的變化溫度也不相同。由固態變液態的溫度叫熔點,由液態變氣...

Excel兩列條件下的資料

姓名 日期 日子 結果 a 2010 8 1 1 ab b 2009 4 1 2 c c 2008 5 2 3 d d 2009 1 3 4 ef e 2009 8 4 f 2009 6 4 如圖,在c列輸入1,2,3,4,然後在d2單元格輸入 回車後,向下複製公式即可!但無法用逗號分隔。公式的話,...