我正在尝试运行以下SQL语句:
"SELECT *, (IIF([Field]=TRUE,'StringValue1','StringValue2') AS [NewField] FROM [Table1] ORDER BY [NewField] ASC"
但是这给了我一个错误“参数NewField没有默认值”。我该如何解决?
我正在使用Delphi 7中使用Jet Engine的Microsoft Access(MDB)数据库。
谢谢!
答案 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