SQL의 저장 프로 시저에 null 값을 전달하는 방법

사가르

이것은 목록 상자에서 입력을 받고 선택한 항목과 관련된 레코드를 표시하는 저장 프로 시저입니다. 그러나 목록 상자에서 아무것도 선택하지 않으면 발생하지 않은 모든 레코드를 표시해야합니다.

이것은 내 저장 프로 시저입니다.

USE [MyDb]
GO
/****** Object:  StoredProcedure [dbo].[usp_SearchCAMAFunctionalObsolescence]    Script Date: 10/18/2016 12:30:08 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[usp_SearchCAMAFunctionalObsolescence]
@section as nvarchar(max),
@quality as nvarchar(max),
@style as nvarchar(max)

As
Begin

set nocount on;
Declare @Where as varchar(max)
Declare @Select as varchar(max)

Set @Select = ' Distinct vi.struct_no as structure,a.assesmt_no as assessment,a.parcel_no as parcel,  o.own_last+'' , ''+o.own_first as taxpayer, id.year_built as built, id.effect_age as age, id.mkt_adj as fo, vi.aprais_val as mktvalue
                    From assessments a
                    inner join parcel p on a.parcel_no = p.parcel_no
                    inner join valueimp vi on vi.assesmt_no = a.assesmt_no
                    inner join owner o on o.id = a.owner_id
                    inner join imp_details id on id.improvementId = vi.id and (id.isdeleted is null or id.isdeleted = 0)
                    inner join quality_details qd on qd.quality_id = id.quality_id
                    inner join section_details sd on sd.section_id = id.section_id
                    inner join style_details stdl on stdl.style_id = id.style_id'



Set @Where = ' where (' + @section + ' is null or sd.section_id = ' + @section + ') and (' + @quality + ' is null or qd.quality_id = ' + @quality + ') and (' + @style + ' is null or stdl.style_id = ' + @style + ')'


DECLARE @QUERY NVARCHAR(MAX)    

SET @QUERY= 'Select '+ @SELECT  + @WHERE 
print @QUERY
EXEC   sp_executesql @QUERY , N'@section as int ,@quality as int,@style as int' ,@section ,@quality,@style

END

if i execute stored procedure in this way
// EXEC usp_SearchCAMAFunctionalObsolescence 'null','null','null'
it display all records.

but i need to execute stored procedure in this way
// EXEC usp_SearchCAMAFunctionalObsolescence null,null,null
and it not display anything
Unnikrishnan R

이 목적을 위해 동적 SQL이 필요하지 않습니다. mysql을 사용하는 경우 문에 IFNULL사용하십시오 WHERE. ( ISNULLSQL Server사용 하고 oracle의 경우 대신 NVL을 사용하십시오.)

입력 변수가 null이면 스크립트는 실제 열 값을 반환합니다.

USE [MyDb]
GO
/****** Object:  StoredProcedure [dbo].[usp_SearchCAMAFunctionalObsolescence]    Script Date: 10/18/2016 12:30:08 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[usp_SearchCAMAFunctionalObsolescence]
@section as nvarchar(max),
@quality as nvarchar(max),
@style as nvarchar(max)

As
Begin

set nocount on;

SELECT Distinct vi.struct_no as structure,a.assesmt_no as assessment,a.parcel_no as parcel,  o.own_last+'' , ''+o.own_first as taxpayer, id.year_built as built, id.effect_age as age, id.mkt_adj as fo, vi.aprais_val as mktvalue
                    From assessments a
                    inner join parcel p on a.parcel_no = p.parcel_no
                    inner join valueimp vi on vi.assesmt_no = a.assesmt_no
                    inner join owner o on o.id = a.owner_id
                    inner join imp_details id on id.improvementId = vi.id and (id.isdeleted is null or id.isdeleted = 0)
                    inner join quality_details qd on qd.quality_id = id.quality_id
                    inner join section_details sd on sd.section_id = id.section_id
                    inner join style_details stdl on stdl.style_id = id.style_id
WHERE sd.section_id =IFNULL(@section,sd.section_id)
     AND qd.quality_id = IFNULL(@quality,qd.quality_id)
     AND stdl.style_id = IFNULL(@style,stdl.style_id )

END

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Entity Framework를 통해 저장 프로 시저에 null 값을 전달하는 방법은 무엇입니까?

분류에서Dev

DB Migration EF 6 Code First에서 저장 프로 시저 변경-매개 변수의 기본값으로 null을 전달하는 방법

분류에서Dev

테이블의 각 열 값을 저장 프로 시저로 전달하고 결과를 SQL-Server의 테이블에 저장하는 방법

분류에서Dev

SQL Server 저장 프로 시저에 값 행을 전달하는 방법은 무엇입니까?

분류에서Dev

사용자 정의 형식의 배열을 저장 프로 시저에 전달하는 방법

분류에서Dev

SQL 저장 프로 시저에 DatetIme.Today ()가 포함 된 문자열을 전달하는 방법

분류에서Dev

응용 프로그램이 아닌 T-SQL의 저장 프로 시저에 명시 적 NULL 값 전달

분류에서Dev

저장 프로 시저를 사용하여 루프에서 SQL 열의 값을 구문 분석하는 방법

분류에서Dev

C #의 저장 프로 시저에서 설정 값을 가져 오는 방법

분류에서Dev

SQL Server 2000에서 저장 프로 시저로 DTS 전역 변수 값을 검색하는 방법

분류에서Dev

저장 프로 시저로 테이블의 모든 Null 값을 채우는 방법

분류에서Dev

SQL 저장 프로 시저의 변수에 값을 할당하는 방법은 무엇입니까?

분류에서Dev

SQL의 저장 프로 시저에서 열 값 전달

분류에서Dev

Oracle Apex 페이지에서 Oracle 저장 프로 시저로 값 배열을 전달하는 방법

분류에서Dev

저장 프로 시저에서 값을 가져 오는 방법

분류에서Dev

한 프로 시저의 출력을 tcl의 다른 프로 시저에 인수로 전달하는 방법

분류에서Dev

목록 개체의 속성을 추출하고 저장 프로 시저로 전달하는 방법

분류에서Dev

InvalidCastException-저장 프로 시저에 null 값 전달

분류에서Dev

ADO.NET 엔터티 모델을 통해 C #에서 SQL Server의 저장 프로 시저로 문자열 배열을 전달하는 방법

분류에서Dev

테이블 이름, 열 이름 및 값을 저장 프로 시저에 전달하는 방법

분류에서Dev

SQL 저장 프로 시저 : 매개 변수 값을 연결하는 방법?

분류에서Dev

저장 프로시 저는 SQL Server의 저장 프로 시저 자체에서 값을 가져옵니다.

분류에서Dev

저장 프로 시저 쿼리에서 새 열을 정의하는 방법

분류에서Dev

Not Null 구문을 사용하는 MS SQL 저장 프로 시저

분류에서Dev

SQL Server 2008에서 NULL 값을 반환하는 로그인 저장 프로 시저

분류에서Dev

SQL 테이블에 저장 프로 시저를 적용하여 NULL 값 할당

분류에서Dev

SQL Server 저장 프로 시저에서 첫 번째 ID 값을 선택하는 방법은 무엇입니까?

분류에서Dev

저장 프로 시저에서 두 개의 MS SQL Server 테이블을 하나로 결합하는 방법

분류에서Dev

저장 프로 시저의 출력 변수에 쿼리 값을 설정하는 방법

Related 관련 기사

  1. 1

    Entity Framework를 통해 저장 프로 시저에 null 값을 전달하는 방법은 무엇입니까?

  2. 2

    DB Migration EF 6 Code First에서 저장 프로 시저 변경-매개 변수의 기본값으로 null을 전달하는 방법

  3. 3

    테이블의 각 열 값을 저장 프로 시저로 전달하고 결과를 SQL-Server의 테이블에 저장하는 방법

  4. 4

    SQL Server 저장 프로 시저에 값 행을 전달하는 방법은 무엇입니까?

  5. 5

    사용자 정의 형식의 배열을 저장 프로 시저에 전달하는 방법

  6. 6

    SQL 저장 프로 시저에 DatetIme.Today ()가 포함 된 문자열을 전달하는 방법

  7. 7

    응용 프로그램이 아닌 T-SQL의 저장 프로 시저에 명시 적 NULL 값 전달

  8. 8

    저장 프로 시저를 사용하여 루프에서 SQL 열의 값을 구문 분석하는 방법

  9. 9

    C #의 저장 프로 시저에서 설정 값을 가져 오는 방법

  10. 10

    SQL Server 2000에서 저장 프로 시저로 DTS 전역 변수 값을 검색하는 방법

  11. 11

    저장 프로 시저로 테이블의 모든 Null 값을 채우는 방법

  12. 12

    SQL 저장 프로 시저의 변수에 값을 할당하는 방법은 무엇입니까?

  13. 13

    SQL의 저장 프로 시저에서 열 값 전달

  14. 14

    Oracle Apex 페이지에서 Oracle 저장 프로 시저로 값 배열을 전달하는 방법

  15. 15

    저장 프로 시저에서 값을 가져 오는 방법

  16. 16

    한 프로 시저의 출력을 tcl의 다른 프로 시저에 인수로 전달하는 방법

  17. 17

    목록 개체의 속성을 추출하고 저장 프로 시저로 전달하는 방법

  18. 18

    InvalidCastException-저장 프로 시저에 null 값 전달

  19. 19

    ADO.NET 엔터티 모델을 통해 C #에서 SQL Server의 저장 프로 시저로 문자열 배열을 전달하는 방법

  20. 20

    테이블 이름, 열 이름 및 값을 저장 프로 시저에 전달하는 방법

  21. 21

    SQL 저장 프로 시저 : 매개 변수 값을 연결하는 방법?

  22. 22

    저장 프로시 저는 SQL Server의 저장 프로 시저 자체에서 값을 가져옵니다.

  23. 23

    저장 프로 시저 쿼리에서 새 열을 정의하는 방법

  24. 24

    Not Null 구문을 사용하는 MS SQL 저장 프로 시저

  25. 25

    SQL Server 2008에서 NULL 값을 반환하는 로그인 저장 프로 시저

  26. 26

    SQL 테이블에 저장 프로 시저를 적용하여 NULL 값 할당

  27. 27

    SQL Server 저장 프로 시저에서 첫 번째 ID 값을 선택하는 방법은 무엇입니까?

  28. 28

    저장 프로 시저에서 두 개의 MS SQL Server 테이블을 하나로 결합하는 방법

  29. 29

    저장 프로 시저의 출력 변수에 쿼리 값을 설정하는 방법

뜨겁다태그

보관