在SQL语句中使用Order by时,“参数xxx没有默认值”错误

时间:2010-05-08 12:06:44

标签: sql delphi ms-access

我正在尝试运行以下SQL语句:

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

但是这给了我一个错误“参数NewField没有默认值”。我该如何解决?

我正在使用Delphi 7中使用Jet Engine的Microsoft Access(MDB)数据库。

谢谢!

2 个答案:

答案 0 :(得分:2)

ORDER BY子句中,您可以按其序号引用列:

SELECT
  IIF(T.[Field]=TRUE, 'StringValue1', 'StringValue2') AS [NewField],
  T.*
FROM [Table1] T
ORDER BY 1 ASCENDING

答案 1 :(得分:0)

我找到了解决这个问题的另一种奇怪的方法:

我只是重复使用IIF语句而不是使用字段名称,例如:

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