我有两个表,我正在尝试加入一个公共列。然而,由于我无法控制的情况,其中一列将数据存储为字符串,另一列存储为整数。我需要将字符串列转换为整数,反之亦然。我该怎么做?在PgSQL中,它就像column :: text等一样容易,但我无法在WebSQL上运行。我该怎么做?
答案 0 :(得分:1)
您可以简单地将INT列转换为VARCHAR?
CREATE TABLE T (ID INT);
CREATE TABLE T2 (ID VARCHAR(2));
INSERT INTO T VALUES (1);
INSERT INTO T VALUES (2);
INSERT INTO T VALUES (3);
INSERT INTO T2 VALUES ('1');
INSERT INTO T2 VALUES ('2');
INSERT INTO T2 VALUES ('3');
SELECT *
FROM T
INNER JOIN T2
ON T2.ID = CAST(T.ID AS VARCHAR(2));
<强> Example on SQL Fiddle 强>
您也可以使用CAST(VarcharColumn AS INT)
,但是您更有可能遇到从字符串转换为int而不是从int转换为字符串的转换错误。