sql >> Databasteknik >  >> RDS >> Sqlserver

Hur sammanfogar jag dessa två? Varchar guid och guid typ båda primärnycklarna

SQL Server är ganska intelligent när det gäller att jämföra värden med olika datatyper.

Följande skript fungerar som det är utan någon explicit konvertering

DECLARE @TableA TABLE (VARCHARID VARCHAR(48) PRIMARY KEY)
DECLARE @TableB TABLE (GUIDID UNIQUEIDENTIFIER PRIMARY KEY)

INSERT INTO @TableA VALUES 
    ('{0CAF3FBC-3C76-420B-B0C4-42867551E3B5}')
  , ('{0CAF3FBC-3C76-420B-B0C4-42867551E3B6}')
  , ( '0CAF3FBC-3C76-420B-B0C4-42867551E3B7' )
  , ( '0CAF3FBC-3C76-420B-B0C4-42867551E3B8' )

INSERT INTO @TableB VALUES 
    ('{0CAF3FBC-3C76-420B-B0C4-42867551E3B5}')
  , ( '0CAF3FBC-3C76-420B-B0C4-42867551E3B6' )
  , ('{0CAF3FBC-3C76-420B-B0C4-42867551E3B7}')
  , ( '0CAF3FBC-3C76-420B-B0C4-42867551E3B8' )

SELECT  *
FROM    @TableA a
        INNER JOIN @TableB b ON b.GUIDID = a.VARCHARID

Resultat

VARCHARID                               GUIDID
{0CAF3FBC-3C76-420B-B0C4-42867551E3B5}  0CAF3FBC-3C76-420B-B0C4-42867551E3B5
{0CAF3FBC-3C76-420B-B0C4-42867551E3B6}  0CAF3FBC-3C76-420B-B0C4-42867551E3B6
0CAF3FBC-3C76-420B-B0C4-42867551E3B7    0CAF3FBC-3C76-420B-B0C4-42867551E3B7
0CAF3FBC-3C76-420B-B0C4-42867551E3B8    0CAF3FBC-3C76-420B-B0C4-42867551E3B8


  1. Olaglig blandning av sammanställningar MySQL-fel

  2. c# MySQL-liknande fråga tar inte parametrar

  3. Gruppera totalt antal aktiva användare för var och en av de föregående 8 veckorna

  4. Flera GROUP_CONCAT på olika fält med MySQL