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