。 STORE有兩個值,T或D.如果存儲值是T,那麼我希望添加的列中的值爲1,否則爲零。有什麼辦法嗎?列添加到現有的表我想一列添加到現有表,其價值依賴於其他的列存儲其值取決於其他列
回答
Oracle不支持此在創建或更改表的命令。
相反,使用:
ALTER TABLE your_table ADD c INTEGER;
UPDATE your_table SET c = CASE WHEN store = 'T' THEN 1 ELSE 0 END;
視圖可以是一種解決方案:
create view v_your_table as
select your_table.*, case when STORE = 'T' than 0 else 1 end as comp from your_table;
在創建的列中創建空值 – user2133404 2013-03-09 01:30:55
計算列或視圖? – www 2013-03-09 01:37:11
「COMPUTED BY」是Oracle RDB語法(Oracle收購的產品,但仍是一個單獨的東西)。 Oracle RDBMS 11g語法不同。 http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_3001.htm#BABIDDJJ – APC 2013-03-09 20:24:03
一個虛擬列可以做到在11g:
SQL> create table yourtab (store varchar2(1));
Table created.
SQL> alter table yourtab add col as (case store when 'T' then 1 else 0 end);
Table altered.
SQL> insert into yourtab (store) values ('T');
1 row created.
SQL> insert into yourtab (store) values ('D');
1 row created.
SQL> select * from yourtab;
S COL
- ----------
T 1
D 0
或觸發方法,如果你對10g或之前:它給
SQL> create table yourtab (store varchar2(1), col number);
Table created.
SQL> create trigger yourtab_biu
2 before insert or update on yourtab
3 for each row
4 declare
5 begin
6 :new.col := case :new.store when 'T' then 1 else 0 end;
7 end;
8/
Trigger created.
SQL> insert into yourtab (store) values ('T');
1 row created.
SQL> insert into yourtab (store) values ('D');
1 row created.
SQL> select * from yourtab;
S COL
- ----------
T 1
D 0
這是我的查詢 'alter table rm_saicharan_finalv3do add col as(case store when'D'then 1 else 0 end);' 它說無效的數據類型。 – user2133404 2013-03-09 01:30:10
@ user2133404你在10g或更低,然後我假設? – DazzaL 2013-03-09 01:35:55
使用oracle sql developer – user2133404 2013-03-09 01:36:31
- 1. 基於其他列的值添加列
- 2. 列依賴於其他列的值
- 3. sql alchemy列值依賴於其他表
- 4. 如何添加到表中其他列與屬於價值
- 5. 添加一列到表中,其值與其他列的具體數值相加
- 6. 添加一列基於其他列KDB +
- 7. JavaFX Tableview - 列值取決於其他列
- 8. 列取決於其他列
- 9. 在現有表中添加一個新列,其值等於ID
- 10. Python Pandas:基於其他列添加列
- 11. 取決於其他列的值
- 12. 取決於其他列的總和值
- 13. Excel列中的增量值取決於其他列中的現有值
- 14. 基於其他表自動添加列到mysql表的方法
- 15. 將列添加到其他列
- 16. 如何將其他列的值添加到下一列
- 17. 如何基於其他列中的值動態添加新列?
- 18. MS SQL使一個表的列取決於其他表值sum
- 19. 基於其他列的值獲取MySQL列根據其他列的值
- 20. 如何添加具有從其他列導出的值的列?
- 21. SQL的ALTER TABLE添加一列,其默認值是基於其他值
- 22. 如何主鍵列的值添加到其他表
- 23. 依賴於其他列的Gridview圖片
- 24. SQL對列值的約束取決於其他列的值
- 25. Java從列表中獲取特定值並添加到其他列表
- 26. SQL和列依賴於其他列的值
- 27. 基於其他列值更新一列
- 28. SUMIF一些列值基於其他列
- 29. 根據其他列中的值將列添加到Python pandas DataFrame
- 30. 如何將值添加到其他列上的列條件
這解決了眼前的事「添加一列」,但並沒有解決列的日常維護(是公平的提問並沒有提高,要麼)。 – APC 2013-03-09 20:10:40
同意。這一切都取決於最終目標。如果所有你想要的是一個將T和D值映射爲0或1的列,那麼虛擬列或視圖可能最有意義。如果您只是爲值創建初始狀態,並且應用程序將繼續向前發展,則此解決方案可能是有意義的。 – DCookie 2013-03-09 20:16:18
Oracle不承認COLUMN這個詞。第一個查詢應該是:ALTER TABLE your_table ADD c INTEGER; – 2017-02-17 15:11:53