QGISクエリ構文は、属性テーブルとフィーチャフィルターで異なります


11

QGIS 2.16.2を使用すると、次の式を使用してシェープファイル属性テーブルからレコードを正常に選択できます。

left("start_time", 10) = '2015-08-01'

start_timeは文字列フィールドであることに注意してください。

ただし、同じ式をシェープファイルのレイヤープロパティ>一般>機能フィルター>クエリビルダーにコピーして貼り付けると、次のエラーが表示されます。

ここに画像の説明を入力してください

同じ表現がQGISのどこでも機能すると期待しています。私は何を間違えていますか?

回答:


12

あなたの観察は正しいです、クエリビルダーは他のQGISと同じ構文を使用しません。

QGIS全体を通して、構文はカスタマイズされたSQL方言であるQGIS式に基づいています。これは、フィルターを入力し、値を計算できるQGISのほぼすべての部分間で移植可能です...

プロバイダ機能フィルターを経由して定義されたクエリビルダは(もしばしばと呼ばれるサブセット列層にQGISがすべてでそれを見ていないような方法で異なる動作します)。プロバイダーに送信するだけです。この場合、プロバイダーはSQL構文のサブセットのみをサポートするOGRですが、たとえばpostgres / postgisデータベースにアクセスする場合など、非常に強力な場合もあります。


知っておくといい。フィルターで次のクエリを使用し、以前に試した選択を正しく置き換えました: "start_time" LIKE '2015-08-01%'
Stu Smith
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.