SQL查询以基于一个值获取特定行

时间:2014-01-06 14:33:38

标签: mysql sql sql-server stored-procedures

ID        Place          Name                Type              Count
--------------------------------------------------------------------------------
7718    | UK1   |  Lemuis           | ERIS TELECOM          | 0
7713    | UK1   |  Astika LLC       | VERIDIAN              | 34
7712    | UK1   |  Angel Telecom AG | VIACLOUD              | 34
7710    | UK1   |  DDC S.r.L        | ALPHA UK              | 25
7718    | UK1   |  Customers        | WERTS                 | 0

基本上我有一个变量,我想将该变量与'Type'列进行比较。如果变量与类型匹配,那么我想返回与变量ID具有相同ID的所有行。

例如,我的变量是'ERIS TELECOM',我需要检索'ERIS TELECOM'的{​​{1}}的ID。然后我在表格中搜索具有7718

的行

我想要的输出应该是:

表名:ID 7718

FullResults

是否有查询可以执行此操作?

3 个答案:

答案 0 :(得分:2)

SELECT *
FROM FullResults
WHERE ID = (SELECT ID 
            FROM FullResults
            WHERE Type= @variable);

我猜它会是这样的?

答案 1 :(得分:1)

这样的事情可以做到这一点,返回所有具有匹配类型的ID的所有数据。

SELECT *
 FROM Table
WHERE ID
   IN (SELECT ID from Table where Type = 'ERIS TELECOM')

答案 2 :(得分:1)

您可以为此创建存储过程,您将在执行存储过程时传递变量。

create proc dbname.dbo.usp_get_date_from_type_value 
(
   @type_value varchar(50)
 )
as
begin

       select ID, Place, Name, Type, Count
       from dbname..table
       where ID in (select ID from dbname..table where type = @type_value)

end

然后您可以运行以下语句。

Exec  dbname.dbo.usp_get_date_from_type_value @type_value = 'ERIS TELECOM'