Sap Hana IN连接列的运算符

时间:2016-12-01 08:12:20

标签: sql sap

我已经像这样设置了我的桌子。

表格设计

COLUMN_1  VARCHAR 100 PRIMARY KEY 
COLUMN_2 VARCHAR 100 

表条目

COLUMN_1 | COLUMN_2 
Test     | 104312

为什么当表中的值存在时,此查询是否返回值?

SELECT  *
FROM    [TABLE]
WHERE   ( CONCAT([COLUMN_1], [COLUMN_2]) = 'Test104312' );

3 个答案:

答案 0 :(得分:2)

  

使用NVARCHAR

解决方案是改变表设计以使用NVARCHAR(100)而不是VARCHAR(100)。

NVARCHAR类型不会填充带有空格的值,也有其他好处。

表格设计

COLUMN_1 NVARCHAR 100 PRIMARY KEY 
COLUMN_2 NVARCHAR 100 

进一步阅读:

答案 1 :(得分:0)

您的代码适用于MS SQL。

            DECLARE @table TABLE (COLUMN_1 varchar(11), COLUMN_2 varchar(10))
            INSERT @table VALUES ('Test','104312')

            select *,concat(COLUMN_1,COLUMN_2) from @table
            WHERE(concat(COLUMN_1,COLUMN_2) = 'Test104312');

输出:

COLUMN_1    COLUMN_2    (No column name)
Test        104312      Test104312

答案 2 :(得分:0)

表数据中可能存在额外的空间问题,因此您可以通过以下方式尝试使用TRM:

WHERE(concat(TRIM(COLUMN_1),TRIM(COLUMN_2)) = 'Test104312')