| by-dsnd | Index Level | by-exp-dsnd |
| Syntax | by-exp attr.name {"explosion limiter"} |
| Category | Access |
| Type | Modifier |
| Description |
designates a sort key, in ascending, "exploded" multi-value order. It must be is followed by an "attr.name".
The "by-exp" modifier is used to sort attributes that may contain more than one value. When the "by" modifier is used on a multi-valued attribute, it only sorts on the first value in the attribute. Further, each item-id will only appear one time, assuming that its display is not suppressed. When the "by-exp" modifier is used, it "explodes" each value in the attribute and treats each value as though it were a separate item. Each value sorts into its proper position, and the item-id will appear with each value. In other words, the number of times and item-id will appear on a report coincides to the number of values in the exploded attribute. In D3, "by-exp" may be used with any verb that lists or selects items, such as "list" or "select". R83 did not allow "by-exp" to be used with "non-sorting" verbs, and was simply ignored. The "explosion limiter" specifies that output only occurs on data elements meeting the print limiting criteria. |
| Options | |
| See Also | by-dsnd modifiers by-exp-dsnd seqlist by READNEXT attr.name sort value collation order |
| Example |
sort customers by-exp invoice.pointers
sort invoices by-exp product = "widget" select fn by-exp pay-date >= "01/01/93" and by-exp pay-date <= "12/31/93". Note that in this example, the second "by-exp" is required to return the correct data. |
| Warnings | In D3, if the "by" modifier is specified with a verb that does not "naturally" sort (such as the "list" verb), the verb is changed to its "sorting" counterpart. (e.g. "list" becomes "sort", "select" becomes "sselect", etc.) This does NOT work, however, on R83 releases. |
| Compatibility | D3 7.0 AP R83 |
| by-dsnd | Index Level | by-exp-dsnd |