簡體   English   中英

如何將現有列遷移到 SQL 中的新列但值映射到新數據類型?

[英]How to migrate an existing column to a new column in SQL but with values mapping to new data type?

我的表中有一個bit 我想添加一個新的int列(一個枚舉)。 沒問題。 但是我想遷移bit的數據以映射到新的integer列。

具體來說,我希望 bit 列中為真 (1) 的任何行都在新列中映射到int值 2。

任何在bit中為假 (0) 的,我想映射到int值 1。

任何有關此邏輯語法的幫助將不勝感激。

UPDATE myTable 
SET NewCol = 
    CASE oldCol 
        WHEN True THEN 2 
        WHEN False THEN 1
    END 

正如評論中正確說明的那樣,您可以在遷移腳本中使用CASE子句來為您可能想要實現的任何映射邏輯提供服務。 請參閱官方文檔

示例語法:

CASE 
    WHEN column = [value_to_map] THEN [mapped_value]
    WHEN column = [value_to_map] THEN [mapped_value]
    ...
ELSE
    [fallback_value]
END AS [some_alias]

我希望這可以幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM