Debugging Scripts
set echo on;
Alter Table
Alter table "Some_Name" Add "column_Name" Integer, /* Add a new column */ Drop "xyz", /* Remove a column */ Alter column "Order" to "Sort_Order", /* changes the column name */ Alter column "Order" position 3, /* changes the column's position */ Alter column "Order" type VARCHAR(10),/* changes the column type */ Alter column "abc" type d1 /* changes the column type */ ;In the example, d1 is a domain name. As shown, you can also convert some columns from numeric to character types.
There are some limitations to modifying columns if they are used as part of a constraint, view, etc.
SET SQL DIALECT n
SET SQL DIALECT 3;In practice, this does nothing (since it is the default) ... setting the dialect to 1 will change how things work.
Firebird 1.0 used only dialect 1.
When a database is opened, the default dialect is dependent on the Firebird version used to create the table.
Date literals
select * from Table1 where "Transaction_Date" = 'TODAY'
First & Skip
select FIRST num_rows SKIP start_row columns FROM table select FIRST num_rows SKIP start_row distinct columns FROM table select first 5 * from "Table_1"Notice that distinct must be after first and skip.
(I don't know if Interbase supports this)
Various Functions
|
|
Testing Functions | |
---|---|
NULLIF(COL3, 12) | Compares two expressions, returns NULL if they are equal, otherwise returns the first expression. With strings, this is case sensitive. |
COALESCE(COL1, COL2, 'Two NULL Columns') | Returns the first NON-NULL value |
case .. when .. else .. end | Allows the result to be dependent on a case statement
SELECT COL1, COL2, COL3, CASE WHEN COL3 = 10 THEN 'Ten' WHEN COL3 = 34 THEN 'Thirty Four' WHEN COL3 IS NULL THEN 'Null value' ELSE COL3 END as test FROM FOO; |
iif(experssion, True_Value, False_Value) IIF(COL2 IS NULL, 'it is NULL', COL2) | Immediate IF - Evaluates the expression and returns one of the 2 values
This function does not work with Firebird 1.5.3 |
Other Functions | |
---|---|
GEN_ID(GeneratorName, 1) | Calls the built-in generator function, returns the current value plus the second parameter and remembers the new value |
CAST(Field1 AS VARCHAR(10)) | Converts the value to a different datatype - can not be used with memo or blob data types |
Extract(Month from Field1) | Returns the Year, Month, or Day from a Date or Timestamp field
Returns the Hour, Minute, or Second from a Time or Timestamp field select F1, F2, F3 from Table1 where extract(month from F1) = 5 |
Reference - several functions listed here do NOT work with Firebird 1.5.3.
References
This information is based in part on "The Firebird Book" by Helen Borrie.
Author: Robert Clemenzi - clemenzi@cpcug.org