CommonTableExpression<Row>

  • Creates a common table expression from a request.

    For example:

    // WITH p AS (SELECT * FROM player) ...
    let p = CommonTableExpression(
        named: "p",
        request: Player.all())
    
    // WITH p AS (SELECT * FROM player) ...
    let p = CommonTableExpression(
        named: "p",
        request: SQLRequest<Player>(sql: "SELECT * FROM player"))
    
  • Creates a common table expression from an SQL string and optional arguments.

    For example:

    // WITH p AS (SELECT * FROM player WHERE name = 'O''Brien') ...
    let p = CommonTableExpression(
        named: "p",
        sql: "SELECT * FROM player WHERE name = ?",
        arguments: ["O'Brien"])
    
  • Creates a common table expression from an SQL literal.

    Literals allow you to safely embed raw values in your SQL, without any risk of syntax errors or SQL injection:

    // WITH p AS (SELECT * FROM player WHERE name = 'O''Brien') ...
    let name = "O'Brien"
    let p = CommonTableExpression(
        named: "p",
        literal: "SELECT * FROM player WHERE name = \(name)")