2016-08-25 5 views
0

CypherクエリでNaNをリテラルとして表現するにはどうすればよいですか?私は、データベース内のNaN値有するNeo4j CypherのNaNのリテラル式は何ですか?

状況

match (a) with max(a.CONCENTRATION) as m return m 

m 
--- 
NaN 

Cypher reference in Neo4jが返され、特別な値の結果が記憶されているものとして、これが可能であることを述べ:

特別な値java.lang.Double.NaNは他のすべての数値よりも大きいとみなされます。私は今、それはそこでだと、私は次のエラーを取得しているため、検索でそれらを一致させる方法がわからない、しかし

を試してみました何

入力

match (a) where a.CONCENTRATION = NaN return a limit 10 

エラー

Variable `NaN` not defined (line 1, column 35 (offset: 34)) 

その他の参考文献

Cypher reference in Neo4j私はそれを逃した場合を除き、NaNのリテラル言及していません。

私は 'Cypher NaN'でグーグルをしましたが、私が得た最も近いことは、直接アドレス指定されていないinf/NaNを追加する方法です(How to add infinity, NaN, or null values to a double[] property on a node in Cypher/Neo4j)。

+1

http://stackoverflow.com/questions/27194534/how-to-determine-property-value-type-within-a-node-in-neo4j多分あなたはそれがあなたに少し助けてくれることを確認しました。 – Supamiu

答えて

3

ありリテラルを指定する方法はありませんが、これは動作するはずです:(必要に応じて)引数は数値に変換できない場合

MATCH (a) 
WHERE TOFLOAT(a.CONCENTRATION) <> a.CONCENTRATION 
RETURN a 
LIMIT 10; 

TOFLOAT()はNULLを返します。しかし、たとえ引数が変換可能であっても、isがnumericで始まらない限り、結果は引数と等しくなりません。

関連する問題