I was goofing around with some junk. Here is something that works, but not necessarily the most pretty. :)-- Sample dataDECLARE @Meeting TABLE (MeetingID INT, MeetingPeriod CHAR(21))INSERT @MeetingSELECT 1, 'YNNNNNNNNNNNNNNNNNNNN' UNION ALL SELECT 2, 'NNNNNNNNNNNNNNNNNNNYN' UNION ALL SELECT 3, 'NYNYNNNNYNNNNNNNNNNNN' -- Declare variablesDECLARE @Day SMALLINTDECLARE @Time SMALLINTSET @Day = 2SET @Time = 0-- Get ResultsSELECT *FROM @Meeting AS MWHERE CASE -- @Day > 0 AND @Time > 0 WHEN @Day > 0 AND @Time > 0 AND SUBSTRING(MeetingPeriod, (@Day * 3) - 2, 3) LIKE '%Y%' AND SUBSTRING(MeetingPeriod, (@Day * 3) - 2 + (@Time - 1), 1) LIKE '%Y%' THEN 1 -- @Day = 0 AND @Time = 0 WHEN @Day = 0 AND @Time = 0 AND MeetingPeriod LIKE '%Y%' THEN 1 -- @Day > 0 AND @Time = 0 WHEN @Day > 0 AND @Time = 0 AND SUBSTRING(MeetingPeriod, (@Day * 3) - 2, 3) LIKE '%Y%' THEN 1 --Day = 0 AND @Time > 0 WHEN @Day = 0 AND @Time > 0 AND ( -- Since there are only 7 days we can check each one SUBSTRING(MeetingPeriod, (1 + @Time - 1), 1) LIKE '%Y%' OR SUBSTRING(MeetingPeriod, (4 + @Time - 1), 1) LIKE '%Y%' OR SUBSTRING(MeetingPeriod, (7 + @Time - 1), 1) LIKE '%Y%' OR SUBSTRING(MeetingPeriod, (10 + @Time - 1), 1) LIKE '%Y%' OR SUBSTRING(MeetingPeriod, (13 + @Time - 1), 1) LIKE '%Y%' OR SUBSTRING(MeetingPeriod, (16 + @Time - 1), 1) LIKE '%Y%' OR SUBSTRING(MeetingPeriod, (19 + @Time - 1), 1) LIKE '%Y%' ) THEN 1 ELSE 0 END = 1
EDIT: Removed a couple of superfluous checks.