首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nvl函数在oracle中用空值替换空字符串

如何使用nvl函数在oracle中用空值替换空字符串
EN

Stack Overflow用户
提问于 2016-05-07 02:14:57
回答 2查看 3.8K关注 0票数 1
代码语言:javascript
复制
INSERT INTO books(book_id, title, author_last_name, author_first_name, classify)
VALUES (1000, 'The Picture of Dorian Gray', 'Wilde', 'Oscar', 'fiction');
INSERT INTO books(book_id, title, author_last_name, author_first_name, classify)
VALUES (1001, 'Think Big', 'Carson', 'Dr. Ben', 'non - fiction');
INSERT INTO books(book_id, title, author_last_name, author_first_name, classify)
VALUES (1003, 'Mathematical Scandals', 'Pappas', ' ', 'non - fiction');
INSERT INTO books(book_id, title, author_last_name, author_first_name, classify)
VALUES (1004, 'SQL', 'Harris', 'Andy', 'non - fiction');
INSERT INTO books(book_id, title, author_last_name, author_first_name, classify)
VALUES (1010, 'Excel 2016', 'Chan', ' ', 'non - fiction');
commit;

这是我的表的值。在一些记录中,我插入了空字符串'‘。如何使用nvl函数将空字符串替换为空值

EN

回答 2

Stack Overflow用户

发布于 2016-05-07 02:19:22

这将用NULL值替换单个空格字符串:

代码语言:javascript
复制
UPDATE books
SET    author_first_name = NULL
WHERE  author_first_name = ' ';

或者,这将从名称的开头和结尾裁剪所有空格(如果留有空字符串,则与NULL值相同)

代码语言:javascript
复制
UPDATE books
SET    author_first_name = TRIM( author_first_name );

NVL函数用于有条件地将NULL值替换为另一个值,而不是相反,因此不适合将其用于此目的。

票数 1
EN

Stack Overflow用户

发布于 2016-05-07 02:22:46

NVL函数用于将NULL替换为其他值,而不是相反。

如果您实际上输入了一个空字符串,那么您的问题将变得无关紧要。在Oracle中,NULL和空字符串''之间没有区别。

但看起来您输入的字符串包含单个空格,这与空字符串不同。

将这些字符串替换为NULL的简单更新为:

代码语言:javascript
复制
UPDATE books SET
  author_first_name = NULL
WHERE
  author_first_name = ' '
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37078932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档