我没有任何运气来完成这项工作,我不确定我错过了什么。我是coldfusion和SQL的新手,还在学习。
我有一个我在表单中做的绑定。在用户选择服务类型后,需要生成一个名称,该名称位于另一个表中。我遇到的问题是服务类型正在使用位于两个表中的服务号。然而,在一张表中,创建者在数字中添加了前导零。例如,一个表将有 205 而另一个表将有 0000205 我需要比较这些以获得我想要的名称值。这是我到目前为止的编码。这是使用coldfusion和java。
名为 servicetype2 的 cfc 文件
<cffunction name="getServiceType2" access="remote" returnType="array">
<cfargument name="CATG_NAME" type="string" required="true">
<cfset var data="">
<cfset var result=ArrayNew(2)>
<cfset var i=0>
<cfquery name="getServiceType2" datasource="SOME DATABASE">
select 1 AS SortBy, '' AS SRTY_NBR, '' AS SRTY_NAME
from SOME TABLE
UNION
select distinct 2 AS SortBy, SRTY_NBR, SRTY_NAME
from SOME TABLE
where CATG_NAME = <cfqueryparam value="#ARGUMENTS.CATG_NAME#" cfsqltype="cf_sql_varchar"> AND EVLN_REQD_FLAG IS NOT NULL
order by SortBy
</cfquery>
<cfloop index="i" from="1" to="#getServiceType2.recordcount#">
<cfset result[i][1]=getServiceType2.SRTY_NAME[i]>
<cfset result[i][2]=getServiceType2.SRTY_NAME[i]>
</cfloop>
<cfreturn result>
</cffunction>
//Table 2
<cffunction name="getUnion" access="remote" returnType="array">
<cfargument name="SRTY_NBR" type="string" required="true">
<cfset var result=ArrayNew(1)>
<cfquery name="union_rq" datasource="SOME DATABASE">
select UNI_NAME, substring(SRTY_NBR, patindex('%[^0]%',SRTY_NBR),10)
from SOME TABLE
where substring(SRTY_NBR, patindex('%[^0]%',SRTY_NBR),10)
= <cfqueryparam value="#ARGUMENTS.SRTY_NBR#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfset result[1]=union_rq.UNI_NAME>
<cfreturn result>
</cffunction>
我的表格中的代码是:
<tr id="serv_ty2" style="display: inline;">
<td></td>
<td>Select Service:
<cfselect name="service_type"
bind="cfc:servicetype2.getServiceType2({catdesc})"
bindonload="false"/></td>
</tr>
<tr id="union" style="display: inline;">
<td></td>
<td>Union Attached:
<cfinput name="uni_name"
bind="cfc:servicetype2.getUnion({service_type})"
bindonload="false"
/></td>
</tr>
绑定再次正常工作,但我无法获得名称,我确信这与我的 SQL 语句比较 205 和 0000205 有关。任何关于如何使 sql 语句工作的建议都会很棒。如果您发现绑定有任何其他错误,那也很好。提前感谢您提供的任何建议。