如何在查询查询中使用函数?

mrj*_*per 3 coldfusion cfquery

我想在下面的QoQ中实现类似于IIF的东西.但它给了我一个错误.要么我做错了,要么就是不可能.希望它是前者.

<cfquery dbtype="query">
select 
  lastname + IIF(Len(firstname) > 0, DE(", " & firstname), DE("")) as fullname 
from myquery
</cfquery>
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

查询查询语法错误.
遇到"(.不正确的Select语句,期待'FROM',但遇到'('相反,一个select语句应该有一个'FROM'结构.

关于如何解决这个问题的任何想法?

Joh*_*ish 7

查询查询仅支持一小组SQL功能,不包括case语句.但是,您可以在查询查询中使用联合来实现您的目标.像这样的东西:

<cfset q = QueryNew("firstname,lastname")>

<cfset queryAddRow(q)>
<cfset querySetCell(q, "firstname", "")>
<cfset querySetCell(q, "lastname", "Smith")>

<cfset queryAddRow(q)>
<cfset querySetCell(q, "firstname", "Joe")>
<cfset querySetCell(q, "lastname", "Bloggs")>


<cfquery name="r" dbtype="query">
    SELECT lastname + ', ' + firstname as fullname
    FROM q
    WHERE firstname <> ''

    UNION

    SELECT lastname as fullname
    FROM q
    WHERE firstname = ''

    ORDER BY fullname
</cfquery>

<cfdump var="#r#">
Run Code Online (Sandbox Code Playgroud)