私は解決策をオンラインで探していましたが、何も思い浮かびませんでした。Coldfusion クエリに「date_hired」という列があります。クエリの cfdump を実行すると、日付の場合は日付として、そうでない場合は [空の文字列] として表示されます。クエリには 8 つのレコードがあります。また、date_hired の日付があるものとないものがあります。この結果セットで aq of q を実行しようとすると:
SELECT date_hired
FROM myQuery
WHERE date_hired = ''
「= の実行中に比較例外が発生しました。」というエラー メッセージが表示されます。サポートされていない型比較の例外: = 演算子は、次の型間の比較をサポートしていません: 左側の式の型 = "NULL"。右側の式の型 = "STRING"。
さて、クエリを次のように変更します。
SELECT date_hired
FROM myQuery
WHERE date_hired IS NOT NULL
ただし、cfdump で date_hired が [空の文字列] である行も含めて、8 行すべてが返されます。同様に、where 句を「where date_hired IS NULL」に変更すると、[空の文字列] の行ではなく、0 行が返されます。
私は途方に暮れています。ISNULL() と LEN() は aq of q では使用できません。幸いなことに、クエリの cfloop を実行して isDate(date_hired) を出力すると、本来あるべき場所で true を返し、あるべき場所で false を返します。そのため、クエリを cfloop してその場で別のクエリを構築できますが、それは難しいことではないことを行うための回り道のように思えます。ここで機能する where 句で使用できる条件はありますか? ありがとう - CM