“Parameter xxx has no default value” error when using Order by in SQL statement

荒凉一梦 提交于 2020-01-06 01:32:31

问题


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!


回答1:


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



回答2:


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


来源:https://stackoverflow.com/questions/2793980/parameter-xxx-has-no-default-value-error-when-using-order-by-in-sql-statement

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!