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函数将空字符串替换为空值
发布于 2016-05-07 02:19:22
这将用NULL值替换单个空格字符串:
UPDATE books
SET author_first_name = NULL
WHERE author_first_name = ' ';或者,这将从名称的开头和结尾裁剪所有空格(如果留有空字符串,则与NULL值相同)
UPDATE books
SET author_first_name = TRIM( author_first_name );NVL函数用于有条件地将NULL值替换为另一个值,而不是相反,因此不适合将其用于此目的。
发布于 2016-05-07 02:22:46
NVL函数用于将NULL替换为其他值,而不是相反。
如果您实际上输入了一个空字符串,那么您的问题将变得无关紧要。在Oracle中,NULL和空字符串''之间没有区别。
但看起来您输入的字符串包含单个空格,这与空字符串不同。
将这些字符串替换为NULL的简单更新为:
UPDATE books SET
author_first_name = NULL
WHERE
author_first_name = ' 'https://stackoverflow.com/questions/37078932
复制相似问题