DB2中的COUNT函数用于返回满足给定条件的行数。GROUP BY用于根据查询中给定的条件将行划分为组。如果我们对INVOICE_ID执行GROUP BY,并且有一些行在INVOICE_ID中具有NULL值,则NULL值将形成一个单独的组。例如,如果我们有下表。ORDER_IDINVOICE_IDA112343214A556113214A99867NULLA556713214A88907NULLA560126701在执行对INVOICE_ID执行GROUP BY并计算行数的查询时,我们将得到以下结果。SELECT INVOICE_ID, COUNT(*) AS INVOICE COUNT FROM ORDERS GROUP BY ... 阅读更多
为了实现这一点,我们将在ORDERS表的INVOICE_ID上的SELECT查询之后使用NULL指示器。如果NULL指示器的值为-1,则我们可以得出结论,INVOIVE_ID具有NULL值。以下是为此的COBOL段落:A010-CHECK-ORDER. EXEC SQL SELECT INVOICE_ID INTO :INVOICE_ID_DATA :INVOICE_ID_N FROM ORDERS WHERE ORDER_ID = ‘678542112’ END-EXEC IF INVOICE-ID-N = -1 MOVE SPACES TO INVOICE-ID-DATA END-IFINVOICE-ID-N是一个NULL指示器,它由DCLGEN实用程序自动生成。