Mic*_*l A 2 sql t-sql sql-server sql-server-2008
我正在尝试比较两种不同的列类型(不是我做的,是数据转换项目的一部分).一个表格guid存储类似于以下内容:
0CAF3FBC-3C76-420B-B0C4-42867551E3B5
Run Code Online (Sandbox Code Playgroud)
另一个存储如下:
{0CAF3FBC-3C76-420B-B0C4-42867551E3B5}
Run Code Online (Sandbox Code Playgroud)
在这一列上加入这两个表的最佳方法是什么(不幸的是,这是两者的主键).到目前为止,我已经试过铸造一个表作为一个GUID(没有成功),并试图建立一个类似的语句 - 但一直不知道该如何处理这个.
任何帮助将非常感谢.
编辑:
如果它是数据,这在语法上是否正确?
inner join report_temp.workflow_lease_proposal lp
on wif.form_guid like '%' + lp.form_guid + '%'
Run Code Online (Sandbox Code Playgroud)
在比较具有不同数据类型的值时,SQL Server是退出智能的.
以下脚本按原样工作,没有任何显式转换
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
Run Code Online (Sandbox Code Playgroud)
结果
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3976 次 |
| 最近记录: |