Re: [OSGeoJapan-discuss] QGISでのSQLの書き方

Yoichi Kayama yoichi.kayama @ gmail.com
2012年 1月 19日 (木) 05:18:09 EST


久保さま

かやまです

PostGIS/PostgreSQLにはいっているデータについて試してみたところ
属性テーブル->アドバンストサーチ のクエリビルダでは mod 関数は使えませんでした。

レイヤ->PostGISレイヤの追加で表示されるダイアログにクエリ作成というボタンがあって、
ここでもクエリビルダと同じダイアログが表示されて検索条件をいれることができるのですが
ここでは mod(elv,100) = 0 という条件式が利用できました。

あとで shape や spatialite でも試してみたいと思います。



2012年1月19日19:06 ASAHI Kosuke <asahi @ hcc.co.jp>:
> 久保さま。
>
> 朝日です。
>
> ちょっと見てみたのですが、QGISではSQLの実行をデータドライバに投げてるだ
> けのように見えます。この場合はOGRへ。
> で、OGRのSQL対応状況見てみると、mod()対応してないんじゃないでしょうか。
>  http://www.gdal.org/ogr/ogr_sql.html
>
> でも"syntax error"が出てるものおかしいですよね。
> もう少し見てみようと思いますが、お急ぎならshape→PostgreSQL/PostGISなどし
> て、データベース内で一旦処理してしまうのが早いかと思います。
>
> 不確実な情報ですみませんが、取り急ぎ。
>
> (2012/01/19 17:31), kubo-m @ ceri.go.jp wrote:
>>
>> 寒地土木研究所の久保です。
>> いつも役立つ情報どうもありがとうございます。
>>
>> QGISでのSQLの書き方について質問があります。
>> 使用環境はWin7(32bit)でQGIS1.7.1です。
>>
>> 10mおきの等高線shpファイルから、「検索クリエビルダ」を利用して
>> 100mおきの等高線を抽出したいと考えています。
>> 等高線shpファイルの属性テーブルには「ELEV」というフィールドがあり
>> その中に各等高線ポリラインの標高値が入っています。
>>
>> QGISを起動→等高線shpファイル表示→属性テーブル表示→
>> 「アドバンストサーチ」クリック→検索クリエビルダ「SQL where 句」に条件式
>> 入力
>> という手順で進んでいます。
>>
>> 剰余を求めるmod関数を使い、「EVLEを100で割った余りが0」という条件式を
>> mod (ELEV, 100) = 0
>> と入力しましたが、
>> 「syntax error, unexpected '(', expecting $end」
>> というエラーが表示され計算することができません。
>>
>> 上記の条件式の書き方に問題があるのでしょうか?
>> SQLの書き方に間違いがありましたら
>> ご教授いただけると助かります。
>> どうぞよろしくお願いします。
>>
>>
>> ---------
>> 久保まゆみ
>>
>> 独立行政法人 寒地土木研究所
>> 寒地水圏研究グループ 水環境保全チーム
>>
>>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> OSGeoJapan-discuss @ lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>
> --
> 北海道地図株式会社 研究開発課
> 朝日 孝輔
> mailto:asahi @ hcc.co.jp
> Tel : 0166-62-4711
>
>
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>


OSGeoJapan-discuss メーリングリストの案内