Condizionare la query

lunedì 27 ottobre 2008 - 17.09

secks Profilo | Senior Member

Ciao a tutti.
Ho la seguente query in una stored procedure:

USE [Pippo]
GO
/****** Oggetto: StoredProcedure [dbo].[SELECT_StaMovimenti1] Data script: 10/27/2008 15:38:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SELECT_StaMovimenti1]
-- parametro prezzo di tipo money
@DAYDTI datetime,
@DAYDTF datetime,
@STRCAU nvarchar(3) = null,
@STRCFO nvarchar(1) = null,
@STRFOC nvarchar(10) = null,
@STRART nvarchar(9) = null
AS
BEGIN
SET NOCOUNT ON;

SELECT *
FROM GesMovRighe
RIGHT OUTER JOIN GesMovTestate ON GesMovRighe.mov_nmo = GesMovTestate.mot_num
WHERE
(GesMovTestate.mot_ddo >= @DAYDTI) AND
(GesMovTestate.mot_ddo <= @DAYDTF)
END

Come posso fare in modo che se @STRART è valorizzato aggiungere la condizione nella WHERE, es @STRART = '001'?

Ciao a tutti.
Paolo.

lbenaglia Profilo | Guru

>Come posso fare in modo che se @STRART è valorizzato aggiungere
>la condizione nella WHERE, es @STRART = '001'?

Ciao Paolo,

Itzik suggerisce in questi casi di utilizzare il T-SQL Dinamico (ma scritto in un certo modo), mentre il nostro Marcello ha scoperto che con le UDF Table Valued ottieni le stesse prestazioni senza ricorrere del Dynamic SQL.
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/59359884f3bc01d8/

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5