[英]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.