我在连接两个表时遇到问题,其中一个连接列是 varchar,另一个是 guid 类型。
生成的 SQL 语句如下所示:
INSERT INTO adnVFD
SELECT dbo_adnVFD.*
FROM PRC INNER JOIN dbo_adnVFD ON PRC.PrcId = dbo_adnVFD.VarType;
我尝试PRC.PrcId
使用该StringFromGUID
函数转换列,以便两列应该属于同一类型。但没有成功。
关于如何解决这个问题的任何想法?
我在连接两个表时遇到问题,其中一个连接列是 varchar,另一个是 guid 类型。
生成的 SQL 语句如下所示:
INSERT INTO adnVFD
SELECT dbo_adnVFD.*
FROM PRC INNER JOIN dbo_adnVFD ON PRC.PrcId = dbo_adnVFD.VarType;
我尝试PRC.PrcId
使用该StringFromGUID
函数转换列,以便两列应该属于同一类型。但没有成功。
关于如何解决这个问题的任何想法?
如何使用派生表,例如:
SELECT b.*
FROM Table2 b
INNER JOIN (SELECT StringFromGUID([ID]) As Expr1 FROM Table1) a
ON b.Expr1=a.Expr1
如果我
(1) 创建一个包含两个字段的新表 - (a) ID, set as an autonumber, field size replication ID
(又名 Guid)和 (b)ID2, text(255)
(2)添加一行,让它创建自动编号,并将其从ID复制并粘贴到ID2中
(3)SELECT Table1.ID, Table1.ID2 FROM Table1 where ID = ID2
我回到我的行列。请注意,粘贴的字符串确实包含大括号。您可能希望确保比较不会以某种方式丢弃它们。
然后,我创建了第二个表,其中包含两个文本字段,均为 text(255),并加入:
SELECT Table1.ID, Table1.ID2, Table2.Field1
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID;
效果很好,让我回到了我的行列。我的钱是在你的情况下丢失的牙套上。我根本不需要使用StringFromGUID()
。