Table of Contents

Class Exists

Namespace
YndigoBlue.Velocity.Functions
Assembly
YndigoBlue.Velocity.dll

Represents the EXISTS operator that tests whether a subquery returns any rows.

public class Exists : Function, ICheckItem, IDefaultItem, IFilterItem, IElement
Inheritance
Exists
Implements

Remarks

The EXISTS operator returns true if the subquery returns one or more rows, and false if it returns no rows. EXISTS is particularly efficient because it stops processing as soon as it finds a matching row (short-circuit evaluation). This is useful for testing relationships, conditional filtering based on related data existence, or implementing semi-joins. Unlike IN, EXISTS can work with multiple columns and complex conditions.

Examples

Find all orders that have at least one associated shipment:

var schema = manager.LoadSchema("logistics");
var orders = schema["orders"];
var shipments = schema["shipments"];

var subQuery = new Query()
    .Select([ shipments["id"] ])
    .From(shipments)
    .Where(new Criterion<Column>(shipments["order_id"], ConditionalType.Equals, orders["id"]));

var query = new Query()
    .Select([ orders["id"], orders["status"] ])
    .From(orders)
    .Where(new Criterion<Expression>(new Expression(new Exists(subQuery))));

var results = manager.Retrieve(query);

Constructors

Exists(IEnumerable<IElement>)

Initializes a new instance of EXISTS for multiple elements.

Exists(IElement)

Initializes a new instance of EXISTS for a single element.