我在我的表中有一个bit
列。我想添加一列int
(一个枚举)。没问题。但是我想迁移bit
列中的数据以映射到新的integer
列。如何将现有列迁移到SQL中的新列,但值映射到新的数据类型?
具体而言,我想在比特列这是真的(1)在新的列被映射到int
值2
任何分别为(0)在bit
柱假任何行,我想映射到int
值1.
任何帮助这种逻辑的语法将不胜感激。
我在我的表中有一个bit
列。我想添加一列int
(一个枚举)。没问题。但是我想迁移bit
列中的数据以映射到新的integer
列。如何将现有列迁移到SQL中的新列,但值映射到新的数据类型?
具体而言,我想在比特列这是真的(1)在新的列被映射到int
值2
任何分别为(0)在bit
柱假任何行,我想映射到int
值1.
任何帮助这种逻辑的语法将不胜感激。
正如评论正确地指出,你可以使用一个CASE
子句中迁移脚本以服务为准映射逻辑,你可能要实现。请参阅official documentation。
语法示例:
CASE
WHEN column = [value_to_map] THEN [mapped_value]
WHEN column = [value_to_map] THEN [mapped_value]
...
ELSE
[fallback_value]
END AS [some_alias]
我希望这可以帮助你。
谢谢,这是比我的用户案例更清晰的官方文档 – Marcus
我很高兴我可以帮忙@Marcus – YuvalHerziger
使用CASE表达式。 https://docs.microsoft.com/en-us/sql/t-sql/language-elements/case-transact-sql – Leonidas199x
谢谢 - 这就是我需要的。 – Marcus
你使用的是MySQL还是MS SQL Server?不要标记不涉及的产品。 – jarlh