2016-05-09 5 views
1

oracle sqldevelopの初心者です。 このような更新テーブルに問題があります。oracleでのみ1行更新sqldevelop

table1 
+----+-----------+------------+ 
| id | acoount | date | 
+----+-----------+------------+ 
| | John  | 2/6/2016 | 
| | John  | 2/6/2016 | 

私はテーブルtable1を持っています。私はIDを更新したい場所は1行だけです。 例:

+----+-----------+------------+ 
| id | acoount | date | 
+----+-----------+------------+ 
| 1 | John  | 2/6/2016 | 
| 2 | John  | 2/6/2016 | 

解決策。おかげ

+0

慎重にタグ付けする場合。 SQL Server <> oracle。 –

+1

申し訳ありませんが、あなたが何を求めているかは非常に不明です。アカウントと日付の両方が同じ場合、table1の1つの行のみを更新しますか?テーブルに主キーがないと仮定します。 – J91321

+0

はい、プライマリキーはありません。実際にIDはpkになります –

答えて

0

Oracleのセットアップ

CREATE TABLE table1 (id, account, "date") AS 
SELECT CAST(NULL AS INT), 'John', DATE '2016-06-02' FROM DUAL UNION ALL 
SELECT CAST(NULL AS INT), 'John', DATE '2016-06-02' FROM DUAL; 

更新

MERGE INTO TABLE1 d 
USING (SELECT ROWNUM AS id, ROWID AS rid FROM Table1) s 
     ON (d.ROWID = s.RID) 
WHEN MATCHED THEN 
    UPDATE SET d.id = s.id; 

結果

SELECT * FROM table1; 

     ID ACCOUNT date    
---------- ------- ------------------- 
     1 John 2016-06-02 00:00:00 
     2 John 2016-06-02 00:00:00 
関連する問題