我已经像这样设置了我的桌子。
表格设计
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' );
答案 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')