有可能做这样的事吗?基本上我想将一个int转换为一个字符串并在连接上使用该字符串。请注意 %t1.id%
select t2.*
from t1
join t2 on t2.url='site.com/path/%t1.id%/more'
where t1.id > 9000
答案 0 :(得分:37)
如果您有一个名为“col1”的列为int,则将其转换为String,如下所示:
CONVERT(col1,char)
e.g。这允许你检查一个int值是否包含另一个值(这里是9),如下所示:
CONVERT(col1,char) LIKE '%9%'
答案 1 :(得分:11)
您可以使用CONCAT,并将其数字参数转换为等效的二进制字符串形式。
select t2.*
from t1 join t2
on t2.url=CONCAT('site.com/path/%', t1.id, '%/more') where t1.id > 9000
答案 2 :(得分:3)
select t2.*
from t1 join t2 on t2.url='site.com/path/%' + cast(t1.id as varchar) + '%/more'
where t1.id > 9000
使用concat之类的建议甚至更好
答案 3 :(得分:2)
使用CONCAT
CONCAT('site.com/path/','%', CAST(t1.id AS CHAR(25)), '%','/more')
答案 4 :(得分:0)
你可以这样做:
select t2.*
from t1
join t2 on t2.url = 'site.com/path/' + CAST(t1.id AS VARCHAR(10)) + '/more'
where t1.id > 9000
注意CAST(t1.id AS VARCHAR(10))
。