根据不同数据类型的另一列设置一列的默认值

Posted

技术标签:

【中文标题】根据不同数据类型的另一列设置一列的默认值【英文标题】:Set the default value of a column based on another column of a different data type 【发布时间】:2014-12-19 14:15:59 【问题描述】:

我正在 SQL 表设计器中创建一个新表,我希望该列的“默认值或绑定”基于同一个表中另一列的值。所以我希望A列从B列的子字符串中获取它的值。A列是numeric数据类型,B列是varchar。现在我有以下内容,但是在屏幕截图 2 中得到消息......这里有什么问题吗?我也有 CONVERT(numeric (2,0), SUBSTRING(col_b,3,2)) 的表达式,它给出了相同的信息。

屏幕截图 1:

屏幕截图 2:

【问题讨论】:

【参考方案1】:

我认为您不能使用 DEFAULT CONSTRAINT 基于另一列设置一列的 DEFAULT 值。

如果您只想替换 NULL 值,您可能需要考虑计算列。 http://msdn.microsoft.com/en-us/library/ms188300.aspx

在极端情况下,您可以在 TRIGGER 中完全按照您的意愿行事。阅读 INSTEAD OF INSERT 触发器。 http://technet.microsoft.com/en-us/library/ms175089(v=sql.105).aspx

【讨论】:

以上是关于根据不同数据类型的另一列设置一列的默认值的主要内容,如果未能解决你的问题,请参考以下文章

根据另一列的另一个值和/或另一行中的同一列更新设置值:-ORA 1427

Liquibase:将值从一列复制到具有数组数据类型的另一列

基于R中的另一列数据框找到一列的共同值

如何将一列的列值组合到 MySQL 中的另一列中?

根据与另一列的部分匹配创建新列

如何根据R中的另一列获取一列的平均值