Using REPLACE in the WHERE clause means no index. If this is a huge table and you have no other selective WHERE criteria, I would recommend that you rather add another (indexed) field, have a trigger that is ACTIVE BEFORE INSERT OR UPDATE that sets this field using REPLACE, and then simply use this new proxy column in your WHERE clause. If it is a tiny table or if you always have other selective and indexed criteria, then doing things only in the WHERE clause is fine.
Set 2016-02-12 2:57 GMT+01:00 [email protected] [firebird-support] < [email protected]>: > > > Users can enter values with dashes (-) in random locations. I don't know > where they might put them. I need to select a record using a where clause > that doesn't have those dashes. For example, the user might record an > insurance policy number as 12-345678-01 or 123-456-789-01. All I will know > are the number, and not where they put the dashes. Is there a way to > suppress the dashes in the Select Clause, or the Where Clause? This is > being done in a Delphi 2007 program using IBDAC. > > > It would be nice if I could do something like ... SELECT * WHERE > HIDE('-',UsersField) = 'MyValue' > > Or the equivalent in the Select statement. > > > >
