Sql server 2005 如何创建一个;假;存储过程的SELECT语句中的行

Sql server 2005 如何创建一个;假;存储过程的SELECT语句中的行,sql-server-2005,stored-procedures,Sql Server 2005,Stored Procedures,我有一个存储过程proc\u Audit\u GetAppEmployedRelative,其目的是返回以前申请者的亲属信息。以下SELECT语句来自该过程: Select a.RowID, a.ApplicantRowID, a.RelativeName as SearsRelName, Case When a.RelativeName <> 'N/A' then 'Yes' End as RelY,

我有一个存储过程
proc\u Audit\u GetAppEmployedRelative
,其目的是返回以前申请者的亲属信息。以下
SELECT
语句来自该过程:

Select  a.RowID, 
        a.ApplicantRowID,
        a.RelativeName as SearsRelName,
                Case When a.RelativeName <> 'N/A' then 'Yes' End as RelY,
                Case When a.RelativeName = 'N/A' then 'Yes' End as RelN,
        a.Relationship as SearsRelRelation,
                a.RelativeJob as SearsRelJobType,
        a.RelativeLoc as SearsRelJobLoc
    From dbo.App_EmplRelative a(nolock)
    Where a.ApplicantRowID = @ApplicantRowID
选择一个.RowID,
a、 应用程序向导,
a、 相对名称为SearsRelName,
当a.RelativeName“N/a”然后“Yes”结束为RelY时,
如果a.RelativeName='N/a',则'Yes'以RelN结尾,
a、 作为SearsRelation的关系,
a、 作为SearsRelJobType的相对工作,
a、 相对地作为SearsRelJobLoc
从dbo.App_empla(nolock)
其中a.applicatorrowid=@applicatorrowid

我需要返回
RelN=Yes
,即使表中的其他字段为空
App\u
。基本上申请人没有任何雇佣的相关信息。我只需在表单上伪造一行即可获得
RelN=Yes
。请让我知道如何生成一个伪行,我还需要在过程中使用上面的select语句。

您可以将结果集放入变量中,然后测试结果集是否为空。如果是这样,您可以通过选择实际值来创建一个伪行。有更好的方法,但这就是我现在想到的

SELECT TOP 1 null, null, null, 'Yes', null, null, null 
FROM dbo.App_EmplRelative a (nolock) 
我的首选方法是首先对@ApplicationRowId进行测试,然后仅在有效时进行查询,或者在编码端处理null。注意:在2005年,您还可以使用.NET语言编写代码,并在那里处理此类操作。

选择a.RowID,
Select a.RowID,
       a.ApplicantRowID,
       a.RelativeName as SearsRelName,
       Case
         When a.RelativeName <> 'N/A' then 'Yes'  End as RelY,
       Case
         When a.RelativeName = 'N/A'
            or a.ApplicantRowID is null then 'Yes' End as RelN,
       a.Relationship as SearsRelRelation,
       a.RelativeJob  as SearsRelJobType,
       a.RelativeLoc  as SearsRelJobLoc
From   (SELECT 1 AS C) T
       LEFT JOIN dbo.App_EmplRelative a(nolock)
         ON a.ApplicantRowID = @ApplicantRowID  
a、 应用程序向导, a、 相对名称为SearsRelName, 案例 当a.RelativeName“N/a”时,则“Yes”结束为relay, 案例 当a.RelativeName='N/a' 或者a.applicationRowid为null,则“是”结束为RelN, a、 作为SearsRelation的关系, a、 作为SearsRelJobType的相对工作, a、 相对地作为SearsRelJobLoc 从(选择1作为C)T 左JOIN dbo.App_empla(nolock) 在a.applicatorrowid=@applicatorrowid上
您当前的查询是否会返回超过1行?如果您发布代码、XML或数据样本,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码样本”按钮(
{}
),以很好地格式化和语法突出显示它<代码>案例合并(a.RelativeName,'N/a'),当'N/a'时,然后'Yes'结束为RelN。