我们有一个遗留接口插入到表 T1 中,它的值是"BODY_TEXT" (varcharmax)
, "BODY_BIN"(varbinarymax)
。它当前只插入其中一列,而将另一列保留为 NULL。现在我们实现了一个新接口——只有"BODY"(varbinarymax)
列的表 T2。
我需要创建一个应该替换 T1 的视图 V1,这意味着
CREATE VIEW V1 AS
SELECT
T2.UNIQUE_ID AS UNIQUE_ID,
等等……</p>
现在我不知道如何处理T2.BODY
列……我需要做类似的事情
T2.BODY AS (whatever is not null(BODY_BIN, BODY_TEXT))
。它还必须支持varcharmax
vs. varbinarymax。我尝试实现COALESCE
意义 T2.BODY AS COALESCE(BODY_BIN, BODY_TEXT)
,但它不起作用。也没有
COALESCE(BODY_BIN, BODY_TEXT) AS BODY
T2.BODY AS BODY
再次 - 在旧表中,我们有 T1 有两列 - BODY_BIN 和 BODY_TEXT。用户插入了一个值,而将另一个留空,因为 body 要么是二进制的,要么是文本的,但不是两者兼而有之。新界面有一个表 T2,它只有一列 BODY (varbinarymax),我被要求删除表 T1 并创建一个同名的视图。意思是为了保持向后可比性,他们应该仍然能够执行“插入 T1 值 X,Y”(X 是 DATA_BIN 或 NULL,Y 是 DATA_TEXT 或 NULL),但内容(取自 X 或 Y)应该被翻译成 T2 表中的一列 - BODY。我不知道如何把这个拉起来。
你能帮助我吗?
谢谢,
尼力