@uwdata/mosaic-sql
Version:
SQL query construction and analysis.
53 lines • 1.89 kB
TypeScript
import { ExprValue } from '../types.js';
import { ExprNode, SQLNode } from './node.js';
export declare class CaseNode extends ExprNode {
/** The optional base expression. */
readonly expr?: ExprNode;
/** An array of WHEN/THEN expression nodes. */
readonly _when: WhenNode[];
/** An ELSE expression. */
readonly _else?: ExprNode;
/**
* Instantiate a case node.
* @param expr An optional base expression, that comes
* immediately after the CASE keyword. If specified, this case statement
* acts like a switch statement, with WHEN expressions as values to
* match against the switch value rather than boolean conditions.
* @param when An array of WHEN/THEN expression nodes.
* @param elseExpr An ELSE expression.
*/
constructor(expr?: ExprNode | undefined, when?: WhenNode[], elseExpr?: ExprNode | undefined);
/**
* Return a new case node with the given conditional added as
* the last WHEN / THEN pair.
* @param cond The WHEN condition expression.
* @param value The THEN value expression.
*/
when(cond: ExprValue, value: ExprValue): CaseNode;
/**
* Return a new case node with the given ELSE expression.
* @param expr The ELSE expression.
*/
else(expr: ExprValue): CaseNode;
/**
* Generate a SQL query string for this node.
*/
toString(): string;
}
export declare class WhenNode extends SQLNode {
/** The condition expression. */
readonly when: ExprNode;
/** The value expression. */
readonly then: ExprNode;
/**
* Instantiate a case node.
* @param when The WHEN condition expression.
* @param then The THEN value expression.
*/
constructor(when: ExprNode, then: ExprNode);
/**
* Generate a SQL query string for this node.
*/
toString(): string;
}
//# sourceMappingURL=case.d.ts.map