如何为WHERE IN()SQL查询选择convert list varchar

如何为WHERE IN()SQL查询选择convert list varchar,sql,select,stored-procedures,Sql,Select,Stored Procedures,如何为选择convert list varchar SQL查询中的何处 select code from table1 Code 10223 10240 10047 10174 10187 10192 10212 10213 10195 select * table2 from where code in ('10047','10174','10187','10192','10212','10213','10195') 我需要这个的存储过程中的操作符可以对

如何为选择convert list varchar SQL查询中的何处

 select code from table1 
 Code
 10223
 10240
 10047
 10174
 10187
 10192
 10212
 10213
 10195


  select * table2 from where code in 
  ('10047','10174','10187','10192','10212','10213','10195')

我需要这个

的存储过程中的
操作符可以对查询进行操作,因此不需要这样的转换:

SELECT *
FROM   table2
WHERE  code IN (SELECT code FROM table1)

你有两个选择:

使用连接: 假设表1中的
code
列是唯一的:

SELECT t2.* FROM table2 t2 INNER JOIN table1 t1 ON CAST(t1.code AS VARCHAR)=CAST(t2.code AS VARCHAR)
内部查询
您的意思是表1中的代码是数字的,而表2中的代码是相同的,但类型是varchar?varchar only string@MUREINKIK您的评论“varchar only string”一点帮助都没有,请告诉我们每个表的代码字段有哪种类型。两者都是varchar@martinstoeckliSo,不需要转换,Mureinik的解决方案应该有效。这两个语句不一定会返回相同的结果。@a_horse_和_no_name,你是对的,我已经编辑了答案
SELECT * FROM  table2 WHERE code IN 
(SELECT code FROM table1)