我想在一些不存在数据的字段中添加相同的值,因为我需要查询每个字段并查看是否存在数据并相应地放置数据,或者还有其他一些工作环境
像
Name Age City
N 22 J
K K
23 L
这里我想把数据放在那些没有数据的字段上,否则我不想触摸tghose字段。插入后应该看起来像
Name Age City
N 22 J
K Gar K
Gar 23 L
数据类型没有验证,所有数据类型都相同。在这种情况下我该如何编写查询..
答案 0 :(得分:2)
select NVL(name, 'Gar'), NVL(age, 'Gar'), city from your_table;
答案 1 :(得分:0)
如果您只想对表中的所有行执行此操作,则可以执行类似
的操作UPDATE your_table
SET name = NVL(name, 'Gar'),
age = NVL(age, 'Gar');
这假定'age'是一个字符字段。
分享并享受。
答案 2 :(得分:0)
你这样做吗?
创建测试表...
create table test_table(Name VARCHAR2(10), Age NUMBER(10), City VARCHAR2(10));
插入样本数据......
insert into test_table(Name, Age, City) values('N', 22, 'J');
insert into test_table(Name, Age, City) values('K', NULL, 'K');
insert into test_table(Name, Age, City) values(NULL, 23, 'L');
commit;
数据看起来像这样......
SQL> select * from test_table;
NAME AGE CITY
---------- ---------- ----------
N 22 J
K K
23 L
最后使用CASE语句以编程方式更新示例数据...
update test_table
set Name = (CASE WHEN Name IS NULL AND Age >= 23 THEN 'John' ELSE Name END)
,Age = (CASE WHEN Age IS NULL AND Name = 'K' THEN 21 ELSE Age END)
;
commit;
3 rows updated
现在数据看起来像这样......
SQL> select * from test_table;
NAME AGE CITY
---------- ---------- ----------
N 22 J
K 21 K
John 23 L