postgresql substrでエラー

解決済みの質問

postgresql substrでエラー

いつもお世話になっております。

postgresql8.4でsubstrを使うとエラーになります。
ご教授願えないでしょうか。

select
type_cd,
brand_cd,
brand_name
from bags bag
inner join type t on substr(bag,0.2) = t.type_cd

としています。
尚、type_cd ,brand_cd はinteger

function substr(integer, integer, integer) does not exist
とエラーが表記されるので、
substr(bag,0.2) → substr(integer(bag),0,2)とやると、
"(" がシンタックスエラーとなります。

なにぶんSQLの経験が少なくてこまっております。

宜しくお願いします。

投稿日時 - 2011-12-19 15:30:15

連想キーワード:

QNo.7198458

すぐに回答ほしいです

質問者が選んだベストアンサー

ANo.3ですが、参考のURLを書き忘れていました。
http://www.sql-reference.com/string/substring.html

投稿日時 - 2011-12-19 17:06:07

補足

有難う御座います。

select substr($a,1,1) from sample
と使用する事は可能ですが、

JOINの条件文に使うとエラーとなるようです。

投稿日時 - 2011-12-19 18:16:49

ANo.4

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(3件中 1~3件目)

ANo.3

substrを使用して何をしようとしているのかが分かりませんが、下記などの説明を読んで見てください。
SUBSTRの定義は
SUBSTR(string, start[, length])
SUBSTR関数は string で示す文字列の start から length 文字分文字列を取得します.ここで start の先頭の位置は1から始まります.また,length は省略可能です.省略した場合は文字列の最後まで取得します.
SQLサンプル
SUBSTR関数を使用して文字列の一部を取得する例を以下に示します.
SELECT SUBSTR('スヌーピー', 2, 2) AS 結果
結果
ヌー

従って
> function substr(integer, integer, integer) does not exist
第一引数が integer の関数は無いよとエラー表示されているわけです。

投稿日時 - 2011-12-19 17:04:12

補足

ご回答有難う御座います。

開始位置は0から始まると思っていました。
有難う御座います。

投稿日時 - 2011-12-19 18:06:54

ANo.2

> select
> type_cd,
> brand_cd,
> brand_name
> from bags bag
> inner join type t on substr(bag,0.2) = t.type_cd

そもそも何をやりたいのでしょうか?「substr(bag,0.2)」の「bag」は「bags」の項目ですか?
エラーメッセージは第一引数がInteger項目に対してsubstrという関数はないというものです。
確か、PostgreSQLの部分文字列関数はsubstringだったはずでし。

投稿日時 - 2011-12-19 16:55:34

補足

ご回答有難う御座います。

ごめんなさい。
brand_cd が bagです

投稿日時 - 2011-12-19 18:05:34

ANo.1

bagはテーブルbagsの別名ですので、substrの最初にテーブル名を設定する事はできません。
尚、2番目の数値は先頭位置は1ですので、0は多分正しく動かないと思います。

投稿日時 - 2011-12-19 16:32:14

補足

ご回答有難う御座います。

すみません記述ミスです。
bagはbrand_cdです。

投稿日時 - 2011-12-19 18:07:30

あわせてチェックしたい
  • inner join left joinについて ...
  • inner joinについて ...
  • INNER JOINについて ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら