我正在使用Firebird 2.5。当我运行使用嵌套CASE和加入字符串的SQL提供尾随空格
SELECT
CASE BILANCA
WHEN 1 THEN
CASE BILANCA WHEN 0 THEN 'SMALLINT' WHEN 1 THEN 'NUME' END
ELSE 'A'||'B' END
AS BILANCA1,
CASE BILANCA
WHEN 1 THEN
CASE BILANCA WHEN 0 THEN 'SMALLINT' WHEN 1 THEN 'NUME' END
ELSE 'AB' END
AS BILANCA2
FROM GS01BILANCA
场BILANCA2是'NUME '
(有NUME后4位)和BILANCA1是'NUME'
。添加的空格数等于CASE中最长字符串的长度。 唯一的区别是在BILANCA1接合字符串:
ELSE 'A'||'B' END
DDL是
CREATE TABLE GS01BILANCA
(BILANCA INTEGER DEFAULT 0 NOT NULL,
CONSTRAINT PK_GS01BILANCA PRIMARY KEY (BILANCA));
表具有2个记录:
结果是
'NUME '
(有4位NUME后),'NUME'
'AB'
,'AB'
问:这个预期,为什么?