回答

收藏

DB2:不允许使用“淣ULL”列吗?

技术问答 技术问答 341 人阅读 | 0 人回复 | 2023-09-14

我们的应用程序正在运行的复杂查询的一部分包含以下几行:…(内部查询)
5 P/ ^3 F  M3 JSELECT
5 y6 m4 `# a* Q  P' I9 N" s- P...8 f) D; v( |+ K9 d
NULL as column_A,
  l, v0 A3 b- E: _0 m; m* }NULL as column_B,
* a! m) u" l, [" A' L4 l7 X8 l% V..." ]3 x2 s' v) Y( [: H) }4 \
FROM
) i* }" J. [9 r! H) w2 K...# _$ K$ R% q% p+ _- B6 O* Z4 [
在DB2中不允许使用这种用 值创建列的语法,尽管在 MSSQLOracle DB中完全可以。从技术上讲,我可以将其更改为:' D) F# C2 _6 f8 J
'' as column_A,
. K1 g; B  R3 m'' as column_B,) k$ w. @  O6 c" n$ ?9 x2 s
但这并不完全相同,可能会破坏我们的计算结果。如何使用其他语法在DB2中创建具有空值的列?' \* u) a' _$ P2 B7 W8 y5 i9 P
                7 X# t. X3 I1 q7 `" d
解决方案:
9 E: c3 j- Y0 i2 c                1 F- h- l0 d- c( x
4 j( c* G4 J/ C- \

* ]# x% J" {. ~/ y                DB2是强类型的,因此您需要告诉DB2 NULL是哪种类型的列:  U2 F' ]$ M. C. y
select $ ?  f  |; B1 P, ?& [3 R
   ...
7 Z8 k# D% u8 I$ ~5 P   cast(NULL as int) as column_A," n, d) x) W7 @$ F- }# g0 B' k* W5 n
   cast(NULL as varchar(128)) as column_B,3 M) U" k) h  C3 q: U, t) z! t
   ...2 Y: }/ j- H. X$ H4 Z
FROM  @" g6 Z$ U, G; Q* e+ S2 \
   ...
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则