Example: Comparisons between UDTs and constants

Suppose you want to know which products sold more than US $100 000.00 in the U.S. in the month of July, 1998 (7/98).

     SELECT PRODUCT_ITEM 
       FROM   US_SALES 
       WHERE  TOTAL > US_DOLLAR (100000) 
       AND    month = 7 
       AND    year  = 1998

Because you cannot compare U.S. dollars with instances of the source type of U.S. dollars (that is, DECIMAL) directly, you have used the cast function provided by DB2® to cast from DECIMAL to U.S. dollars. You can also use the other cast function provided by DB2 (that is, the one to cast from U.S. dollars to DECIMAL) and cast the column total to DECIMAL. Either way you decide to cast, from or to the UDT, you can use the cast specification notation to perform the casting, or the functional notation. You might have written the above query as:

     SELECT PRODUCT_ITEM 
       FROM   US_SALES 
       WHERE  TOTAL > CAST (100000 AS us_dollar) 
       AND    MONTH = 7 
       AND    YEAR  = 1998