DB2 CASE WHEN THEN 向所有值添加两个额外的空值
DB2 CASE WHEN THEN adding two extra nulls to all values
我今天收到一个初级程序员发给我的奇怪问题。
在 DB2 SQL 语句中,他切换了
select [Value]
旧结果是
AAAAAA
CCCCCC
BBBBBB
DDDDDDDDDDD
EE
到
select
CASE [Value]
WHEN 'AAAAAA'
THEN 'AAAA'
WHEN 'BBBBBB'
THEN 'BBBBBBBB'
ELSE [Value]
END
新结果是
..AAAA............
..CCCCCC
..BBBBBBBB........
..DDDDDDDDDDD
..EE
在哪里。代表空
我想了解是什么原因导致未选择的值中出现两个额外的空值?
什么 DB2 版本和平台?
此语句是否直接在 SQL 客户端界面中 运行?或者它是在一个存储过程中,其结果正在被某些东西解释?
在我看来,返回的数据类型似乎已从固定长度的 CHAR 更改为 VARCHAR,无论读取结果的是什么,它仍在将其作为 CHAR 进行处理。
字符串文字总是被解释为 VARCHAR。
如果是这种情况,请更正调用应用程序或将 VARCHAR 转换为 CHAR。
select
CASE [Value]
WHEN 'AAAAAA'
THEN CHAR('AAAA', 30)
WHEN 'BBBBBB'
THEN CHAR('BBBBBBBB', 30)
ELSE [Value]
END
我今天收到一个初级程序员发给我的奇怪问题。
在 DB2 SQL 语句中,他切换了
select [Value]
旧结果是
AAAAAA
CCCCCC
BBBBBB
DDDDDDDDDDD
EE
到
select
CASE [Value]
WHEN 'AAAAAA'
THEN 'AAAA'
WHEN 'BBBBBB'
THEN 'BBBBBBBB'
ELSE [Value]
END
新结果是
..AAAA............
..CCCCCC
..BBBBBBBB........
..DDDDDDDDDDD
..EE
在哪里。代表空
我想了解是什么原因导致未选择的值中出现两个额外的空值?
什么 DB2 版本和平台?
此语句是否直接在 SQL 客户端界面中 运行?或者它是在一个存储过程中,其结果正在被某些东西解释?
在我看来,返回的数据类型似乎已从固定长度的 CHAR 更改为 VARCHAR,无论读取结果的是什么,它仍在将其作为 CHAR 进行处理。
字符串文字总是被解释为 VARCHAR。
如果是这种情况,请更正调用应用程序或将 VARCHAR 转换为 CHAR。
select
CASE [Value]
WHEN 'AAAAAA'
THEN CHAR('AAAA', 30)
WHEN 'BBBBBB'
THEN CHAR('BBBBBBBB', 30)
ELSE [Value]
END