如何在SQLServer中编写存储过程,从表中输入一列并返回相同的列和标志列

如何在SQLServer中编写存储过程,从表中输入一列并返回相同的列和标志列,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的要求是从表中传递phonenumber列表,我需要的输出是返回phonenumber列和IsMobile列 我的过程逻辑应该是:当我将phonenumber列传入存储过程时,它应该与其他表B中包含列MobileNumbers(其中包含移动号码数据库)的表B进行检查 如果传递的phonenumber与表B中的列表匹配,则我需要标记Ismobile列'1',如果传递的电话号码不在表B中,则'0' 下面是源表示例 现在我有了另一个表B(这是手机号码列表) 当我将源表phoneNumber列作为

我的要求是从表中传递
phonenumber
列表,我需要的输出是返回
phonenumber
列和
IsMobile

我的过程逻辑应该是:当我将
phonenumber
列传入存储过程时,它应该与其他
表B
中包含列
MobileNumbers
(其中包含移动号码数据库)的表B进行检查

如果传递的
phonenumber
表B
中的列表匹配,则我需要标记
Ismobile
'1'
,如果传递的电话号码不在
表B
中,则
'0'

下面是源表示例

现在我有了另一个表B(这是手机号码列表)

当我将源表
phoneNumber
列作为输入传递,并在
表B
中找到任何匹配项时,我需要标记为1

下面是我希望存储过程的返回值必须是

请帮我处理存储过程

提前感谢。

这里有一种方法:

select s.*,
       (case when exists (select 1 from mobiles m where s.phonenumber = m.mobilenumber)
             then 1 else 0 end) as HasMobile
from source s;

在我看来,没有理由将其作为存储过程。如果您想用名称封装此逻辑,可以创建视图或内联表函数。

那么您尝试了什么?这是一个非常清楚且说明充分的问题,但没有显示任何研究成果。