如果返回的coldfusion查询结果集中的一列有NULL,我们如何检查该列的值是否为NULL?
我们应该说<cfif queryname.columnname[i] EQ ''>
OR<cfif queryname.columnname[i] eq 'NULL'>
吗?
如果返回的coldfusion查询结果集中的一列有NULL,我们如何检查该列的值是否为NULL?
我们应该说<cfif queryname.columnname[i] EQ ''>
OR<cfif queryname.columnname[i] eq 'NULL'>
吗?
Null 值只会在查询对象中作为空字符串返回。
理想情况下,您将使用数据库的ifnull
(或类似的)方法将空值转换为适当的值,然后再到达 CF。
如果不是,它们会以空字符串的形式返回,因此您的第一个cfif
是正确的。
如果您使用的是 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>
诀窍在于确定在这种情况下要使用的正确虚假字符串,然后对其进行测试。