質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

1314閲覧

oracle SQL

kamizono

総合スコア48

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2015/04/18 02:06

表のデータに「あ」から「ん」までの50音を使って
重複無くデータの更新をしたいです。
あ100
あ102
い102
あ103
あ104
い104
う104
え104
見たいな感じです。
ご存知でしたら教えてください

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2015/04/18 15:56

回答にあたり情報が不明瞭です。 ・更新対象の表レイアウトが不明 ・8つの例は8件のレコードを示しているのか。 ・あ100~え104とはどのような規則なのか。(数字順、50音順といいたい?) ・重複無くデータの更新をしたいとあるが、どのようなレコードをどのように変更することを希望しているのか。 ・データの更新とはUPDATE文を指しているのか。
kamizono

2015/04/20 00:17

8つの例は8件のレコードを示しています。 規則は同じ104が4つある場合はそれぞれあ、い、う、えを割り振ります(50音順です。) 102は2つあるので「あ」と「い」を割り振ります。 100と103は一つなので処理はしません。(間違えて書きましたすみません。) 100はそのままで102にのように2つ同じレコードがある場合に50音を割り振ります。 データの更新とはupdateを前提に考えています。
jcs502ulf

2015/04/20 10:33

レコードを一意にするカラムはありますか?
guest

回答2

0

手元に環境がないので確認できていませんが、
こんな感じでいかがでしょう?

lang

1UPDATE tbl 2SET 3 col = SUBSTR('あいうえおかきくけこ', DAT.SEQ, 1) || DAT.col 4FROM ( 5 SELECT 6 col 7 , ROW_NUMBER OVER(PARTITION BY col ORDER BY ROWNUM) SEQ 8 , ROWID 9 FROM tbl SRC 10 JOIN ( 11 SELECT 12 col 13 , COUNT(*) CNT 14 FROM tbl 15 GROUP BY 16 col 17 ) CNT 18 ON SRC.col = CNT.col 19 AND CNT.CNT > 1 20) DAT 21WHERE tbl.ROWID = DAT.ROWID

投稿2015/04/21 07:10

編集2015/04/21 08:52
kutsulog

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

最終的なSQLではありませんが、最近のOracleなら抽出はできると思います。
(当該カラムをcol、テーブルをtblとした場合)

lang

1select substr('あいうえおかきくけこ', pos, 1) || col 2from ( 3 select col 4 ,row_number() over (partition by col order by col) as pos 5 from tbl 6 ) 7;

これをベースにUPDATE文にできれはいいのですが。

投稿2015/04/20 10:49

編集2015/04/20 10:50
jcs502ulf

総合スコア307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問