Sequence

  • Returns a cursor over the concatenated results of mapping transform over self.

  • Returns the concatenated SQL literal of this sequence of literals, inserting the given raw SQL separator between each element.

    For example:

    let components: [SQL] = [
        "UPDATE player",
        "SET name = \(name)",
        "WHERE id = \(id)"
    ]
    let query = components.joined(separator: " ")
    

    Note

    The separator is a raw SQL string, not an SQL literal that supports SQL Interpolation.

SQLExpressible

  • Returns an expression by joining all elements with an associative SQL binary operator.

    For example:

    // SELECT * FROM player
    // WHERE (registered
    //        AND (score >= 1000)
    //        AND (name IS NOT NULL))
    let conditions = [
        Column("registered"),
        Column("score") >= 1000,
        Column("name") != nil]
    Player.filter(conditions.joined(operator: .and))
    

    When the sequence is empty, joined(operator:) returns the neutral value of the operator. It is 0 (zero) for .add, 1 for ‘.multiply, false for.or, and true for.and`.

Inclusion Operators (BETWEEN, IN)

  • An SQL expression that checks the inclusion of an expression in a sequence.

    // id IN (1,2,3)
    [1, 2, 3].contains(Column("id"))