【发布时间】:2020-10-13 18:52:39
【问题描述】:
我有以下要求。当 FirstName 存在时,我应该返回唯一的 condtionFirstName 当 LastName 存在时,我应该返回唯一的 condtionlastName 当 First 和 email 都存在时,我应该返回 condtionFirstName + condtionEmail。
基本上,无论存在哪个值,我都应该返回该条件,如果 1 值 1 条件,如果 1 和 2 则条件 1 和 2,如果 1 和 3 则条件 1 和 3,如果只有 3 则条件 3。
请帮我理解这个逻辑。
DECLARE @FirstName NVARCHAR(100)
DECLARE @LastName NVARCHAR(100)
DECLARE @Email NVARCHAR(200)
DECLARE @condtionFirstName NVARCHAR(200)
DECLARE @condtionlastName NVARCHAR(200)
DECLARE @condtionEmail NVARCHAR(200)
SET @FirstName = 'JOhn'
SET @LastName = 'David'
SET @Email = 'john.david@abc.com'
SET @condtionFirstName = ' AND FirstName = ' + '''' + @FirstName + ''''
SET @condtionlastName = ' AND LastName = ' + '''' + @LastName + ''''
SET @condtionEmail = ' AND Email = ' + '''' + @Email + ''''
【问题讨论】:
-
见dynamic search conditions。最重要的是,使用参数化查询而不是使用文字值构建 SQL 语句。
标签: sql-server sql-server-2012 sql-server-2014