views:

211

answers:

2

I am trying to run the following SQL statement:

"SELECT *, (IIF([Field]=TRUE,'StringValue1','StringValue2') AS [NewField] FROM [Table1] ORDER BY [NewField] ASC"

But this gives me an error "Parameter NewField has no default value". How can I solve it?

I am using Microsoft Access (MDB) database using Jet Engine from Delphi 7.

Thank you!

+2  A: 

In the ORDER BY clause, you can reference a column by its ordinal number:

SELECT
  IIF(T.[Field]=TRUE, 'StringValue1', 'StringValue2') AS [NewField],
  T.*
FROM [Table1] T
ORDER BY 1 ASCENDING
TOndrej
It worked. Thank you :)
Tofig Hasanov
A: 

I found another weird way to solve this problem:

I just repeat the IIF statement instead of using field name, like:

SELECT *, (IIF([Field]=TRUE,'StringValue1','StringValue2')) AS [NewField] FROM [Table1] ORDER BY (IIF([Field]=TRUE,'StringValue1','StringValue2')) ASC
Tofig Hasanov