Alternate way below. If you can confirm that we have clarified the problem and that the solution works maybe one of the more experienced posters can speak to best practices in dealing with this particular issue...
CREATE TABLE #Test (TranCode varchar(20))
INSERT INTO #Test (TranCode) VALUES ('BUY')
INSERT INTO #Test (TranCode) VALUES ('SELL')
INSERT INTO #Test (TranCode) VALUES ('CONSTRAIN')
INSERT INTO #Test (TranCode) VALUES ('HOLD')
INSERT INTO #Test (TranCode) VALUES ('ON ACCOUNT')
DECLARE @TC varchar(50)
--SELECT @TC = 'BUY'
--SELECT @TC = 'SELL'
SELECT @TC = 'ALL'
IF @TC = 'ALL' SET @TC = NULL
SELECT
*
FROM #Test
WHERE
TranCode = @TC OR @TC IS NULL
DROP TABLE #test