l. *_*arz 2 sql oracle null string-concatenation
我有两列:p.firstName 和 p.lastName。
现在我想显示两个名称组合的长度,问题是,在 p.lastName 的某些字段中存储了值“null”。
当我尝试这样做时:
LENGTH(p.firstName + p.lastName)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
ORA-01722 invalid number
Run Code Online (Sandbox Code Playgroud)
然而,如果我把它分开
LENGTH(p.firstName) + LENGTH(p.lastName)
Run Code Online (Sandbox Code Playgroud)
它不会给我错误消息。但总和的长度为 NULL,即使 firstName 确实有几个字符。p.LastName 的 NULL 可以这么说打破它。
有人有主意吗?
您可以使用 IFNULL()、ISNULL()、COALESCE() 和 NVL() 函数
SELECT LENGTH(COALESCE(p.firstName,'') + COALESCE(p.lastName,'')) AS Len FROM TableName
Run Code Online (Sandbox Code Playgroud)
或者
SELECT LENGTH(ISNULL(p.firstName,'') + ISNULL(p.lastName,'')) AS Len FROM TableName
Run Code Online (Sandbox Code Playgroud)
或者
SELECT LENGTH(IFNULL(p.firstName,'') + IFNULL(p.lastName,'')) AS Len FROM TableName
Run Code Online (Sandbox Code Playgroud)
或者
SELECT LENGTH(NVL(p.firstName,'') + NVL(p.lastName,'')) AS Len FROM TableName
Run Code Online (Sandbox Code Playgroud)
或者
SELECT LENGTH(p.firstName || p.lastName) AS Len FROM TableName
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7542 次 |
最近记录: |