可以在不使用显式强制转型的情况下将结构上等价的两种未命名行类型作比较。还可以将一种未命名行类型与另一种未命名行类型作比较,条件是这两种行类型具有相同数目的字段,并且存在用于转换不具有相同数据类型的对应字段的值的强制转型。换而言之,如果所有用于处理字段转换的强制转型都是系统定义的或者都是隐式强制转型,则从一种未命名行类型到另一种未命名行类型的强制转型是隐式的。否则,必须显式地对未命名行类型进行强制转型才能将其与另一种行类型作比较。
CREATE TABLE prices (col1 ROW(a SMALLINT, b FLOAT) col2 ROW(x INT, y REAL) )
SELECT * FROM prices WHERE col1 = col2
在本示例中,数据库服务器隐式地调用内置强制转型来将 SMALLINT 的字段值转换为 INT 并,将 REAL 的字段值转换为 FLOAT。
如果两种行类型的对应字段不能隐式地相互进行强制转型,则可显式地在类型之间进行强制转型(如果存在用于处理这两种类型之间的转换的用户定义的强制转型的话)。