在SQL Server中,在.NET上,您可以将SQL语句添加到一起,因此可以使用'或'或者'和'。
我遇到了如何在SQL Server存储过程中执行此操作。
问题:
你将SQL语句添加到一起的是什么?我有一种感觉,它始于一个' c' concocations ??
我相信我已接近以下代码,以获得一个变量' SQL?
代码:
BEGIN
SELECT *
FROM TblEmployee
WHERE
FirstName LIKE '%' + LTRIM(RTRIM((@sFirstName))) + '%'
or
Surname LIKE '%' + LTRIM(RTRIM((@sSurname ))) + '%'
and
IF (LTRIM(RTRIM((@sOfficeBase))) = 'xyz1234')
and OfficeBase = LTRIM(RTRIM((@sOfficeBase)))
ELSE
or
OfficeBase= LTRIM(RTRIM((@sOfficeBase)))
END
有If else in stored procedure sql server
等类似查询但我有一种感觉,我在寻找错误的'题。提前致谢
答案 0 :(得分:1)
where子句允许你嵌入条件逻辑 - 你不需要if / then / else,这也是一样,因为afaik,where子句中的任何SQL方言都不支持。
BEGIN
SELECT *
FROM TblEmployee
WHERE
FirstName LIKE '%' + LTRIM(RTRIM((@sFirstName))) + '%'
or
Surname LIKE '%' + LTRIM(RTRIM((@sSurname ))) + '%'
and
(OfficeBase = 'xyz1234'
or
OfficeBase= LTRIM(RTRIM((@sOfficeBase)))
END
答案 1 :(得分:0)
我很确定您的原始查询中有一些缺少的括号。不确定为什么要将LTRIM和RTRIM添加到参数中。在黑暗中拍摄我怀疑你可以将你的查询归结为此。
SELECT * --This should be the column names actually needed, * is not good for production code
FROM TblEmployee
WHERE
(
FirstName LIKE '%' + @sFirstName + '%'
or
Surname LIKE '%' + @sSurname + '%'
)
and OfficeBase in ('xyz1234', @sOfficeBase)