2013-04-13 13 views
1

我有不同的數據庫表,替換值,而不是爲varchar成布爾

數據庫1:

表1:

Id -001(int) 

Name -xxx(varchar) 

Male -0 (bit) 

Female-1 (bit) 

數據庫2:

表2:

Id -1 (int) 

Ca.Name-yyy (varchar) 

Gender - M or F (varchar) 

T這些是我的桌子。我想從數據庫2創建插入查詢,然後我執行到表1.但我有問題做這個。

該怎麼辦?

+1

BTW工作,上面列名不明確。 – dotNET

回答

0
INSERT INTO database1.Table1 (Id, Name, Male, Female) 
SELECT id, name, CAST(CASE gender WHEN 'M' THEN 1 ELSE 0 end as Bit), CAST(CASE gender WHEN 'M' THEN 0 ELSE 1end as Bit) FROM database2.Table2 

我想從您發佈從表2你去表1,上述應該在那種情況下

+0

這是正確的。但是,當我使用2值意味着像'M'或'B'然後1否則0.當我使用這個我得到錯誤或操作符不使用在這裏。如何使用它? – PoliDev

+0

您不能添加或進入的情況下,在這種情況下(如果 'M' THEN 1 如果 'B' THEN 1 ELSE 0 END作爲位CASE性別 ) 繼續添加WHEN子句,你會做 CAST對於任何附加值 –

2

您可以執行INSERT INTO...SELECT聲明並使用CASE來檢查用戶是否爲Male or Female

INSERT INTO dbase2.dbo.Table2(ID, Name, Gender) 
SELECT ID, Name, 
     CASE WHEN Male = 1 THEN 'M' ELSE 'F' END Gender 
FROM dbase1.dbo.Table1 
+0

選擇'Insert into Table2(Id,Name,Male,Female)values('+ Gender ='M'時的情況,那麼0否則'F'+')'END Table1中的性別。這是我的查詢。我收到錯誤「Coversion failed varchar to int」 – PoliDev

+0

你想做什麼?您是否生成動態查詢? –

+0

您回答了,數據庫2有字段性別和數據庫1只有男性和女性字段。你完全變成了相反。我也得到錯誤。 – PoliDev

相關問題