一つのテーブルに
smallint型のkey1,key2,key3を持つテーブルのデータを
これを key1+key2+key3のinteger形式のkeyAとして
他のテーブルに登録したり呼び出したりしたいのですが
可能でしょうか?

例えば
key1=123,key2=45,key3=67 というデータを keyA=1234567
というkeyで管理したいのです。

Cにおける構造体のunionの様な呼び出しがしたいのですが・・・

このQ&Aに関連する最新のQ&A

A 回答 (3件)

cast( key1 as varchar ) || cast( key2 as varchar ) || cast( key3 as varchar )


でいけると思います。
PostgreSQLは関数インデックス使えるのでインデックスもつくれます。
    • good
    • 0

|key1=123,key2=45,key3=67 というデータを keyA=1234567


|というkeyで管理したいのです。

この場合、単純な計算じゃすまなくなります。
だって文字列じゃなく数値なんだから、
足したら123+45+67=235になっちゃうでしょ?

key1=3桁、key2=2桁、key3=2桁
とか決めておいて、
key1*10000+key2*100+key3
という感じで登録する感じになるかと。

SQLだとこんな感じかな
UPDATE T SET key = key1 * 10000 + key2 * 100 + key3 WHERE 条件;
    • good
    • 0
この回答へのお礼

確認がおくれてすいません。
同じエリアをまとめて呼び出せるような事が出来たら容量を抑えられるかと思いついたのですが
やはりそういう式で計算して別途キーを作成するしか手はなさそうですね。
ご回答有り難うございました。

お礼日時:2009/06/05 20:22

できると思います

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング