30

このようなことは可能ですか?基本的に、int を文字列にキャストし、その文字列を結合で使用したいと考えています。に注意してください%t1.id%

select t2.* 
from t1 
join t2 on t2.url='site.com/path/%t1.id%/more' 
where t1.id > 9000
4

5 に答える 5

54

int である「col1」という列がある場合は、次のように String にキャストします。

CONVERT(col1,char)

たとえば、これにより、次のように int 値に別の値 (ここでは 9) が含まれていることを確認できます。

CONVERT(col1,char) LIKE '%9%'
于 2014-07-13T14:25:52.287 に答える
18

CONCATを使用できます。その数値引数は、同等のバイナリ文字列形式に変換されます。

select t2.* 
from t1 join t2 
on t2.url=CONCAT('site.com/path/%', t1.id, '%/more') where t1.id > 9000
于 2012-10-10T14:19:50.073 に答える
3
select t2.* 
from t1 join t2 on t2.url='site.com/path/%' + cast(t1.id as varchar)  + '%/more' 
where t1.id > 9000

提案されたように concat を使用することはさらに優れています

于 2012-10-10T14:20:15.927 に答える
2

使ってみてくださいCONCAT

CONCAT('site.com/path/','%', CAST(t1.id AS CHAR(25)), '%','/more')
于 2012-10-10T14:18:06.623 に答える
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))ください。

于 2012-10-10T14:17:22.247 に答える