2012-12-11 47 views
1

我想在Peshwar表中添加性別。 我想補充性別白沙瓦表的各個領域,其中性別是空的,用這個來填補性別欄這個查詢更新列

select 
    Gender_lookup_Table. 
    Gender 
from 
    Gender_lookup_Table,Peshwar 
where 
    Gender_lookup_Table.initial_name like substring 
     (Peshwar.Student_Name, 1,CHARINDEX(' ',Peshwar.Student_Name,0)) 

返回 :秒,但我亙古不變的工作。

update Peshwar 
set 
gender= 
    (
     select 
      Gender_lookup_Table.Gender 
     from 
      Gender_lookup_Table,Peshwar 
     where 
      Gender_lookup_Table.initial_name like substring 
       (Peshwar.Student_Name, 1,CHARINDEX(' ',Peshwar.Student_Name,0)) 
) 
where gender= NULL 

我需要一個for循環來填充所有列? :s

+0

? –

回答

2

首先,當與NULL值比較時,應該是IS NULL而不是= NULL

UPDATE a 
SET  a.gender = b.gender 
FROM peshwar a 
     INNER JOIN gender_lookup_Table b 
      ON b.initial_name LIKE SUBSTRING(a.Student_Name, 1, CHARINDEX(' ', a.Student_Name, 0)) 
2
update p 
SET p.gender = g.gender 
FROM peshwar p 
INNER JOIN Gender_lookup_Table g 
     ON g.initial_name LIKE SUBSTRING(p.Student_Name, 
             1, 
             CHARINDEX(' ', p.Student_Name,0)) 
WHERE p.gender IS NULL 
您使用哪種DBMS
+1

+1只有你已經確定了這個爛攤子,並很好地清除了它。 'SUBSTRING'函數需要一個右括號 – Kaf

+0

@Mahmoud它說:「關鍵字附近的語法不正確'where'' – ssbb

+1

@ShanzaButt'SUBSTRING'函數需要關閉')' – Kaf