首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >DB2:不允许"NULL“列?

DB2:不允许"NULL“列?
EN

Stack Overflow用户
提问于 2010-03-25 00:01:53
回答 2查看 25.7K关注 0票数 32

我们的应用程序正在运行的复杂查询的一部分包含以下行:...(内部查询)

代码语言:javascript
复制
SELECT
...
NULL as column_A,
NULL as column_B,
...
FROM
...

这种使用ORACLNULORACL值创建列的语法在DB2中是不允许的,但在MSSQL和数据库中完全可以。从技术上讲,我可以将其更改为:

代码语言:javascript
复制
'' as column_A,
'' as column_B, 

但这并不具有完全相同的含义,并且可能会破坏我们的计算结果。如何使用其他语法在DB2中创建包含空值的列?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-25 01:55:27

DB2是强类型的,所以您需要告诉DB2您的NULL是哪种列:

代码语言:javascript
复制
select 
   ...
   cast(NULL as int) as column_A,
   cast(NULL as varchar(128)) as column_B,
   ...
FROM
   ...
票数 56
EN

Stack Overflow用户

发布于 2018-09-18 01:36:14

对于Db2 LUW,从版本9.7开始,您可以(如果愿意)使用NULL值,而无需显式地将其转换为特定的数据类型。

NULL本身将被隐式转换为VARCHAR(1)。此知识中心页面将显示在其他情况下发生的情况:Determining data types of untyped expressions

示例

代码语言:javascript
复制
db2 "describe values ( NULL, + NULL, NULL || NULL  )"

 Column Information

 Number of columns: 3

 SQL type              Type length  Column name                     Name length
 --------------------  -----------  ------------------------------  -----------
 449   VARCHAR                   1  1                                         1
 997   DECFLOAT                 16  2                                         1
 449   VARCHAR                 508  3                                         1

代码语言:javascript
复制
db2 "describe values NULL, 1"

 Column Information

 Number of columns: 1

 SQL type              Type length  Column name                     Name length
 --------------------  -----------  ------------------------------  -----------
 497   INTEGER                   4  1                                         1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2509233

复制
相关文章

相似问题

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