我有没有办法比较两个字符串12 AD E4 9F
和12:ad:E4:9f
,并得到一个结果,表明它们相似。存储在不同的表中,我想通过使用字符串作为连接标准来连接表来创建视图
答案 0 :(得分:1)
您可以将第二个字符串转换为大写字母,然后在比较字符串之前删除所有''和':'
从双重选择UPPER(REPLACE('12:ad:E4:9f',':','');
答案 1 :(得分:0)
一种方法是在进行比较之前消除字符:
where replace(col1, ' ', '') = replace(col2, ':', '')
或者将一个分隔符替换为另一个分隔符:
where replace(col1, ' ', ':') = col2
通常,SQL在字符串比较中不区分大小写,除非您明确将其设置为区分大小写。如果您具有区分大小写,请将上述内容包含在lower()
或upper()
中。函数replace()
,upper()
和lower()
在大多数数据库中都可用(尽管有些名称可能略有不同)。
答案 2 :(得分:0)
尝试这种方式用于tsql。
您应该使用replace
和upper
功能。在下面的例子中,col2是12:ad:E4:9f
select *
from tab1 t1
join tab2 t2 on upper(t1.col1) = upper(REPLACE((t2.col2,':',''))
答案 3 :(得分:0)
REPLACE(LTRIM(RTRIM(ProductDescription)), ':', '')
SELECT UPPER(ProductDescription)
然后比较..