2

如果返回的coldfusion查询结果集中的一列有NULL,我们如何检查该列的值是否为NULL?

我们应该说<cfif queryname.columnname[i] EQ ''> OR<cfif queryname.columnname[i] eq 'NULL'>吗?

4

3 回答 3

12

Null 值只会在查询对象中作为空字符串返回。

于 2009-10-29T18:02:42.723 回答
9

理想情况下,您将使用数据库的ifnull(或类似的)方法将空值转换为适当的值,然后再到达 CF。

如果不是,它们会以空字符串的形式返回,因此您的第一个cfif是正确的。

于 2009-10-29T18:22:48.713 回答
1

如果您使用的是 oracle 数据库,您可以使用 NVL 方法并修改您的查询以换行该列。

<cfset var nullstringvalue = "THELASTNAMEFIELDISNULL" />
<cfquery name="lastnamelookup" ....>
  SELECT NVL(lastname, 'LASTNAMEISNULL') AS lastname
</cfquery>
<cfif lastnamelookup.lastname EQ nullstringvalue>
     ...do null case work...
</cfif>

诀窍在于确定在这种情况下要使用的正确虚假字符串,然后对其进行测试。

于 2009-11-06T01:45:43.950 回答