解決済みの質問
いつもお世話になっております。
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
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
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~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
> 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
OKWaveのオススメ
おすすめリンク