Вы не предоставляете никаких тестовых данных или вашей схемы, поэтому это довольно сложно сказать наверняка, но это может быть то, что вам нужно.
Я не уверен в цели этого условия OR (payment LIKE + '%all%')
, он ограничит результаты для всех строк, содержащих слово «все».
Я предположил (хотя вы не указали это в своем вопросе), что вы пытаетесь вернуть все строки из addresstable и любых соответствующих строк из таблицы1. используя left join. Если это не так, вы можете переместить этот AND ((payment LIKE + '%' + COALESCE(@Payment,'') + '%') OR (payment LIKE + '%all%'))
обратно в предложение WHERE и изменить LEFT JOIN на INNER JOIN.
--Test data
DECLARE @table1 AS TABLE(addid INT, payment VARCHAR(20))
DECLARE @addresstable AS TABLE(addid INT, Fname VARCHAR(20),lname VARCHAR(20),city VARCHAR(20), addressline1 VARCHAR(20), [state] VARCHAR(20),zip VARCHAR(20))
DECLARE @Payment AS VARCHAR(20)
DECLARE @state VARCHAR(20)
SET @state='stateA'
INSERT INTO @table1 (addid, payment) VALUES(1,'payment 1')
INSERT INTO @table1 (addid, payment) VALUES(3,'payment 2')
INSERT INTO @table1 (addid, payment) VALUES(4,'payment 3')
INSERT INTO @table1 (addid, payment) VALUES(5,'payment 4')
INSERT INTO @addresstable (addid, Fname, lname, city, addressline1, [state], zip) VALUES (1, 'A', 'A', 'A', 'A', 'stateA', 'A')
INSERT INTO @addresstable (addid, Fname, lname, city, addressline1, [state], zip) VALUES (2, 'B', 'B', 'B', 'B', 'stateA', 'B')
INSERT INTO @addresstable (addid, Fname, lname, city, addressline1, [state], zip) VALUES (3, 'C', 'C', 'C', 'C', 'stateA', 'C')
INSERT INTO @addresstable (addid, Fname, lname, city, addressline1, [state], zip) VALUES (4, 'D', 'D', 'D', 'D', 'stateB', 'D')
INSERT INTO @addresstable (addid, Fname, lname, city, addressline1, [state], zip) VALUES (5, 'E', 'E', 'E', 'E', 'stateB', 'E')
--Query
SELECT Fname,lname,city, addressline1, state,zip, payment
FROM @addresstable a
LEFT JOIN @table1 t
ON t.addid = a.addid
AND ((payment LIKE + '%' + COALESCE(@Payment,'') + '%') OR (payment LIKE + '%all%'))
WHERE [state] = @state
Для каких технологий вы работаете и в какой базе данных sq используется u? –
База данных сервера Sql – Henry
и вы используете asp.net ?? –