内置函数的串联问题
Concatenation issues with in-built functions
谁能解释一下为什么 returns 只有两个记录而不是三个?当我对定界符进行硬编码以及使用内置 SQL 函数时,我想要相同的结果。
SELECT 'HASH(IFNULL(COST_CENTER, '''') || IFNULL(MATCH_DATE, ''''))::bigint'
UNION
SELECT CONCAT('HASH(', CONCAT_WS(' || ', 'IFNULL(COST_CENTER, '''')', 'IFNULL(MATCH_DATE, '''')' ), ')::bigint')
UNION
SELECT CONCAT('HASH(', CONCAT_WS('||', ' IFNULL(COST_CENTER, '''') ', ' IFNULL(MATCH_DATE, '''') ' ), ')::bigint')
;
您的前两行是相同的,因此当您使用 UNION 时,它会将它们重复数据删除为一条记录。如果您想要全部三行,请改用 UNION ALL
。
谁能解释一下为什么 returns 只有两个记录而不是三个?当我对定界符进行硬编码以及使用内置 SQL 函数时,我想要相同的结果。
SELECT 'HASH(IFNULL(COST_CENTER, '''') || IFNULL(MATCH_DATE, ''''))::bigint'
UNION
SELECT CONCAT('HASH(', CONCAT_WS(' || ', 'IFNULL(COST_CENTER, '''')', 'IFNULL(MATCH_DATE, '''')' ), ')::bigint')
UNION
SELECT CONCAT('HASH(', CONCAT_WS('||', ' IFNULL(COST_CENTER, '''') ', ' IFNULL(MATCH_DATE, '''') ' ), ')::bigint')
;
您的前两行是相同的,因此当您使用 UNION 时,它会将它们重复数据删除为一条记录。如果您想要全部三行,请改用 UNION ALL
。