2011-11-09 7 views
3

SQL Server 2008とColdFusion 9.1.2を使用しています。T-SQL文のこの部分をコーディングする最も効率的な方法は何ですか?

私は整数フィールドを持つクエリを持っています。私は、ゼロではなく、整数またはヌルにドロップする必要があります。

今のところ、これは私が持っているものです。

<cfif LOCAL.MyValue eq ""> 
    NULL , 
<cfelse> 
    <cfqueryparam cfsqltype="cf_sql_numeric" value="#LOCAL.MyValue#">, 
</cfif> 

最善の方法、または最も効率的な方法、またはこれをコード化するための最も簡潔な方法は何ですか:

答えて

8

すべて1行で:

<cfqueryparam cfsqltype="cf_sql_numeric" value="#LOCAL.MyValue#" null="#NOT len(LOCAL.MyValue)#"> 

長さがある場合、null = falseに設定されます。
長さがない場合、null = trueを設定し、value属性の値は無視します。

また、len()内にtrim()を追加することもできます(たとえば、ユーザーがスペースを入力する可能性がある場合など)。

+0

私は以前これを見たことがありませんが、これは私が探していたものです。だから、NULL部分は条件をテストするだけですか? –

+0

この場合、はい。 – duncan

+1

また、 'null ="#val(LOCAL.MyValue)EQ 0# "'を実行すると読みやすくなり、状態が少し良くなるようです。 – ale

関連する問題