我有不同的數據庫表,替換值,而不是爲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.但我有問題做這個。
該怎麼辦?
我有不同的數據庫表,替換值,而不是爲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.但我有問題做這個。
該怎麼辦?
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,上述應該在那種情況下
這是正確的。但是,當我使用2值意味着像'M'或'B'然後1否則0.當我使用這個我得到錯誤或操作符不使用在這裏。如何使用它? – PoliDev
您不能添加或進入的情況下,在這種情況下(如果 'M' THEN 1 如果 'B' THEN 1 ELSE 0 END作爲位CASE性別 ) 繼續添加WHEN子句,你會做 CAST對於任何附加值 –
您可以執行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
BTW工作,上面列名不明確。 – dotNET