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。