2017-05-12 51 views
0

我有一張名爲students的表,裏面有1000名學生。我有一個查詢,告訴我哪些學生有免費學費。在stduents表中,我有一個名爲FreeTuition的字段,我想用查詢結果填充/更新該字段。我需要使用某種循環嗎?基於查詢的UPDATE SQL表

students表的StuCode是唯一的,查詢返回所有學生免費學費的StuCode。這是我希望它看起來如何:

| StuCode | FreeTuition | 
------------------------- 
| S12345 | Yes   | 
| S12346 | No   | 
------------------------- 
+1

你可以發表表格結構嗎?我假設有一個可匹配的唯一ID列? –

+1

請提供數據和表格結構 –

+0

嗨,這是同一張表的免費學費查詢嗎?如果你可以分享查詢,我可以給你樣品 –

回答

2

沒有。事情是這樣的:

with yourquery as (
     <your query here> 
    ) 
update s 
    set FreeTuition = (case when yq. StuCode is not null then 'Y' else 'N' end) 
    from students s left join 
     yourquery yq 
     on s. StuCode = yq. StuCode; 

注意:此設置值所有學生,是或否。您可以將left join更改爲join,以僅爲由子查詢返回的學生設置值。

+0

優秀,現貨!謝謝! – tonyyeb