2009-10-29 44 views

回答

12

空值只會作爲查詢對象中的空字符串返回。

9

理想情況下,您可以使用數據庫的ifnull(或類似的)方法在空值到達CF之前將空值轉換爲適當的值。

如果不是,他們回來作爲一個空字符串,所以你的第一個cfif是正確的。

+0

同意。如果您需要從空字符串中區分真正的NULL值,則需要在查詢中執行該操作。 – davidcl 2009-10-31 19:59:22

+0

有時我希望它不能像這樣工作。在某些情況下,NULL實際上可以是,意思是。 – 2009-11-03 18:55:36

+0

是的,這意味着你已經完成了你的數據庫錯誤。 ;) – 2009-11-03 19:09:18

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> 

訣竅是確定在這種情況下使用正確的假冒字符串,然後測試它。