我在连接两个表时遇到问题,其中一个连接列是varchar而另一个是guid类型。
生成的SQL语句如下所示:
INSERT INTO adnVFD
SELECT dbo_adnVFD.*
FROM PRC INNER JOIN dbo_adnVFD ON PRC.PrcId = dbo_adnVFD.VarType;
我尝试使用PRC.PrcId
函数转换StringFromGUID
列,以便两列的类型相同。但没有成功。
有关如何解决此问题的任何想法?
答案 0 :(得分:1)
如何使用派生表,例如:
SELECT b.*
FROM Table2 b
INNER JOIN (SELECT StringFromGUID([ID]) As Expr1 FROM Table1) a
ON b.Expr1=a.Expr1
答案 1 :(得分:0)
如果我
(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
我回到了我的排。请注意,粘贴的字符串确实包含大括号。您可能希望确保比较不会以某种方式丢弃它们。
然后我创建了第二个表,其中包含两个文本字段,两个文本字段(255),并且已加入:
SELECT Table1.ID, Table1.ID2, Table2.Field1
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.ID;
哪个工作正常并把我带回了我的行。在我的情况下,我的钱是缺少括号。
我根本不需要使用StringFromGUID()
。