2009-10-29 7 views
2

Если один из столбцов в возвращаемом наборе результатов запроса coldfusion имеет значение NULL, как мы проверяем, является ли значение этого столбца NULL?Как обрабатывать нулевые значения из запросов ColdFusion?

Следует ли говорить только <cfif queryname.columnname[i] EQ ''> ИЛИ <cfif queryname.columnname[i] eq 'NULL'>?

ответ

12

Нулевое значение возвращается только как пустая строка в объект запроса.

9

В идеале вы должны использовать метод базы данных ifnull (или аналогичный) для преобразования нулевых значений в нечто подходящее, прежде чем они достигнут CF.

Если нет, они возвращаются как пустая строка, поэтому ваш первый верен.

+0

Согласен. Если вам нужно отличить истинное значение NULL от пустой строки, вам нужно сделать это в запросе. – davidcl

+0

И иногда мне жаль, что это не сработало. NULL может фактически означает что-то в определенных обстоятельствах. –

+0

Да, это означает, что вы неправильно сделали свою базу данных. ;) –

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> 

Трюк будет заключаться в определении правильной поддельной строки для использования в этом случае, а затем для ее тестирования.

 Смежные вопросы

  • Нет связанных вопросов^_^