0

これはコンパイルされていない私のクエリです:

Select 1 from dbo.EmailAddresses e
    Inner Join Users u On e.UserID = u.UserID
        Where LOWER(EmailAddress) = @EmailAddress               
        And
    Case When @For = 1 Then e.JurisdictionID IS NOT NULL  When @For = 2 Then e.AccountID IS NOT NULL  End

動的クエリなしでこのクエリを作成する方法、つまり文字列でクエリを作成する方法を教えてもらえますか?

4

2 に答える 2

2

これは機能するはずです:

Select 1 from dbo.EmailAddresses e
    Inner Join Users u On e.UserID = u.UserID
        Where LOWER(EmailAddress) = @EmailAddress               
        And (
            (@For = 1 AND e.JurisdictionID IS NOT NULL) OR
            (@For = 2 AND e.AccountID IS NOT NULL)
        )
于 2012-09-04T13:20:36.843 に答える
2

簡単に試してみて、ケースなしで試してみる1つの方法..

Select 1 from dbo.EmailAddresses e 

    Inner Join Users u On e.UserID = u.UserID 
        Where LOWER(EmailAddress) = @EmailAddress                        
And  (   (@For = 1 and e.JurisdictionID IS NOT NULL)
        or ( @For = 2 and e.AccountID IS NOT NULL  ))
于 2012-09-04T13:21:23.457 に答える