我想通过将两列名称,columnA和columnB相加来生成一个按字母顺序排列的名称列表。
我试过这个:
<cfquery name="listAuthors" datasource="hhLibrary">
SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB
FROM books
WHERE ColumnB LIKE '#firstletter#%'
ORDER BY ColumnB
</cfquery>
这是错误代码: 参数太少。预期1.
任何帮助都非常感激。
oregonHoney
答案 0 :(得分:0)
更新
select *
from (
SELECT title, a1_Lname as Name
FROM books
WHERE a1_Lname LIKE '#firstletter#%'
UNION ALL
SELECT title, a2_Lname as Name
FROM books
WHERE a2_Lname LIKE '#firstletter#%'
) a
ORDER BY Name
答案 1 :(得分:0)
在Jet / ACE SQL中,您不能在字段名称别名上放置WHERE子句或ORDER BY - 您必须重复别名所引用的表达式。所以,替换这个:
SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB
FROM books
WHERE ColumnB LIKE '#firstletter#%'
ORDER BY ColumnB
......用这个:
SELECT title, (a1_Fname + a2_Fname) AS ColumnA, (a1_Lname + a2_Lname) AS ColumnB
FROM books
WHERE a1_Lname + a2_Lname LIKE '#firstletter#%'
ORDER BY a1_Lname + a2_Lname
如果安装了Access,我强烈建议您在QBE中的交互式Access中测试SQL。如果您只是在Access中尝试过,那么您很快就会发现这种情况。