我尝试使用动态列名,建立CFQUERY:为什么我不能在此查询中使用动态列名称?
<cfquery dbtype="query" name="getColLength">
SELECT MAX(LEN(#ListGetAt(ColumnList, index)#))
FROM query
</cfquery>
然而,这给了我以下错误:
Encountered "MAX (LEN (. Incorrect Select List,
为什么不工作的呢?我尝试用<cfoutput>
标签围绕#ListGetAt(InputColumnList, 1)#
,但这并没有帮助。有任何想法吗?
更新:
这似乎并不为与动态列名的问题。如果我尝试硬编码列,我得到相同的错误:
SELECT MAX(LEN(MyColumnName))
FROM query
这个语法有什么问题?
进一步更新:
这工作:
SELECT Max(MyColumnName)
FROM query
虽然这并不:
SELECT LEN(MyColumnName)
FROM query
的SELECT LEN给了我这个错误:
Encountered "(. Incorrect Select Statement, Expecting a 'FROM', but encountered '(' instead, A select statement should have a 'FROM' construct.
我想我可以使用SELECT MAX查询,然后使用coldfusion len函数......但为什么这不起作用?
如果添加列别名有何帮助例如`MAX(LEN(MyColumnName))作为Foo` – 2011-02-01 15:42:40
@Conrad Frix - 不,我已经试过 – froadie 2011-02-01 15:44:08
你试过单词LENGTH()而不是LEN()。 LEN()是CFML。 LENGTH()是sql标准。 – webRat 2011-02-01 16:02:41