Snowflake cloud data platform 如果字符串列中的值为空,如何将该列替换为数字0

Snowflake cloud data platform 如果字符串列中的值为空,如何将该列替换为数字0,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,希望这里是询问雪花数据库相关问题的好地方。。 我想知道如果字符串列值为null,如何将其替换为0。 到目前为止,我尝试了nvl函数,但没有成功 CREATE TABLE EMP(ENAME VARCHAR(10)); INSERT INTO EMP VALUES('JACK'); INSERT INTO EMP VALUES(null); SELECT NVL(ENAME,0) FROM EMP1; 错误:无法识别数值“JACK” 任何帮助都将不胜感激 谢谢, Nawaz是强类型的SQL。N

希望这里是询问雪花数据库相关问题的好地方。。 我想知道如果字符串列值为null,如何将其替换为0。 到目前为止,我尝试了nvl函数,但没有成功

CREATE TABLE EMP(ENAME VARCHAR(10));
INSERT INTO EMP VALUES('JACK');
INSERT INTO EMP VALUES(null);

SELECT NVL(ENAME,0) FROM EMP1;
错误:无法识别数值“JACK”

任何帮助都将不胜感激

谢谢,
Nawaz是强类型的SQL。
NVL
的输出类型被推断为一个
数字
,因此实际的查询类似于

SELECT NVL(ENAME::NUMBER, 0) FROM EMP1;
您应该决定输出的类型。如果需要字符串,则需要传递
NVL
字符串,如

SELECT NVL(ENAME, '0') FROM EMP1;
如果需要整数,则需要安全地将字符串转换为整数。例如,如果希望非整数变为
NULL
,则为0,则可以使用

SELECT NVL(TRY_TO_INTEGER(ENAME), 0) FROM EMP1;
我试过了,从EMP1中选择NVL(试到号码(ENAME),0);上述查询将非null和null都转换为0。所以,我写了nvl(ename),后来我使用了这个计数长度。