- ベストアンサー
型について
こんにちは。 今、test_tableがあり、testフィールドがあります。 testフィールドはbigintです。 今、何を実行したいかというと、 testフィールドに格納されている、 12345 23456 34567 45678 56789 のレコードの一番最後の桁(1の位)を削除して更新したいんです。 1234 2345 3456 4567 5678 update test_table set test = substring(test, 1, length(test) - 1); 上記を実行すると --------------------------------------------------- column "test" is of type bigint but expression is of type text You will need to rewrite or cast the expression --------------------------------------------------- とメッセージがでます。これは恐らく substringが返す型がtextなのにsetしようとしている フィールドがbigintの為、型が違うよって言っているんですよね。 ※本当は扱う値はbigintだけにもっと大きいのですが、 わかりやすいように小さくしてあります。 上記のような動きを実現するにはどのように記述すればよろしいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
update test_table set test = test / 10; でいいと思います。 整数だし。
その他の回答 (1)
- taka451213
- ベストアンサー率47% (436/922)
こんにちは。 普通に「TO_NUMBER」とかで数値型に変換できないのでしょうか? (bigintだからダメなのかなぁ・・・?) ダメなら10で割ってしまって、小数を切り捨てるとか・・・。 自信ないです・・・すみません。 (^^ゞ
お礼
なるほどなるほどです。 できました。ありがとうござました。