帮助SQL存储过程

我需要一些SQL存储过程的帮助,我没有很多经验。 我有一个表“dbo.Lookup_Country”。它包含3个字段:ID,Name,Code。 现在我写了一个存储过程,通过Code检索国家名称。
Select Name from Lookup_Country where Code = @Code
我需要调整存储过程,以便如果有0个结果,则必须通过ID搜索来查看是否有结果: 从Lookup_Country中选择Name,其中Id = @Code 所以基本上我需要某种'IF'结构:
if (Select Name from Lookup_Country where Code = @Code) == 0 results
      Select Name from Lookup_Country where Id = @Code
这可能吗? 谢谢 感谢大家,我用过这个:
DECLARE @Name nvarchar(50)

-- Insert statements for procedure here
SET @Name = (SELECT Name from dbo.Lookup_Country WHERE Code = @CODE)
IF @Name != ''
    SELECT Name from dbo.Lookup_Country WHERE Code = @CODE
ELSE
    SELECT Name from dbo.Lookup_Country WHERE ID = @CODE
    
已邀请:
将第一个选择的结果放入变量,然后你可以对该结果进行计数,如果为零,那么你将按id进行搜索。 要了解有关如何使用
if
语句的更多信息,请查看本文,如果您使用的是SQL Server,但是,如果您使用的是其他数据库,那么逻辑仍然适用
if
语法可能会有所不同。 http://msdn.microsoft.com/en-us/library/ms182587.aspx     
对此没有一种非常优雅的方式......
SELECT Name 
INTO #foo
from Lookup_Country where Code = @Code
IF @@ROWCOUNT <> 0
   SELECT Name  FROM #foo
ELSE
   Select Name from Lookup_Country where Id = @Code
无论您使用表变量还是计数,都无关紧要 或者你有这个结构,也许有一个聚合
SELECT TOP 1
    Name
FROM
    (
    Select Name, 0 AS Precedence from Lookup_Country where Code = @Code
    UNION ALL
    Select Name, 1 AS Precedence from Lookup_Country where Id = @Code
    ) foo
ORDER BY
    Precedence 
如果在输出中包含Precedence,则可以获得有关如何找到它的信息...     
它对你有帮助吗?
 Select Name from Lookup_Country where (Code = @Code OR Id = @Code)
    
你可以使用
or
Select Name from Lookup_Country where Code = @Code or Id = @Code
    

要回复问题请先登录注册