2017-11-23 1 views
0

나는 테이블 (일정)이SQL 서버 와일드 카드 문제

Date      Remark 
2010-01-01    Sunday 
2010-02-01    Saturday 
2010-03-01    Public Holiday 
2010-03-01    Rose Day 
2010-04-01    Valentines day 
2010-04-01    Public Holiday 
2010-01-01    Sunday 
2010-02-01    Saturday 

나는 토요일과 일요일을 가지고 있지 않습니다 만 날짜를 선택합니다.

SELECT * FROM CALANDER WHERE REMARK NOT LIKE 'SATURDAY' OR Remark Not like 'Sunday' 

이 쿼리를 실행하고 있지만 도움이되지 않습니다. 하지만 더 효율적 몰라

+0

당신은 SQL 서버 말, 왜 당신은 MySQL의 태그를? – Sami

+0

정확한 일치 또는'NOT IN' 절 이후와 같이'! ='또는'<>'대신에 왜 사용하지 않습니까? – SMA

+0

와일드 카드가없는'LIKE '는별로 의미가 없습니다.'<>' – jarlh

답변

1

당신이

SELECT * FROM Calendar WHERE REMARK NOT IN('Saturday', 'Sunday') 
0

이 아마 너무 JOIN로 기록 될 수에서 사용할 수 :

SELECT * 
FROM CALANDER 
WHERE Date NOT IN (
    SELECT DISTINCT Date 
    FROM CALANDER 
    WHERE Remark IN ('Saturday', 'Sunday') 
) 
0

글쎄, 당신은 정규 표현식 (와일드 카드로 작업 할 경우)이 접근법을 따라야합니다 :

일요일과 토요일은 S으로 시작하는 유일한 날이므로 와일드 카드가 나타납니다. 같은 : 'S%day', 쿼리 :

SELECT * FROM Calendar WHERE REMARK LIKE 'S%day' 
0

그냥 AND 대신 OR 사용

CREATE TABLE MyDates (
    [Date] DATE, 
    Remark NVARCHAR(50) 
    ); 
INSERT INTO MyDates VALUES 
('2010-01-01',    'Sunday'), 
('2010-02-01',    'Saturday'), 
('2010-03-01',    'Public Holiday'), 
('2010-03-01',    'Rose Day'), 
('2010-04-01',    'Valentines day'), 
('2010-04-01',    'Public Holiday'), 
('2010-01-01',    'Sunday'), 
('2010-02-01',    'Saturday'); 

SELECT * 
FROM MyDates 
WHERE Remark NOT LIKE 'SATURDAY' AND Remark Not like 'Sunday'; 

결과 :

+---------------------+----------------+ 
|  Date   |  Remark  | 
+---------------------+----------------+ 
| 01.03.2010 00:00:00 | Public Holiday | 
| 01.03.2010 00:00:00 | Rose Day  | 
| 01.04.2010 00:00:00 | Valentines day | 
| 01.04.2010 00:00:00 | Public Holiday | 
+---------------------+----------------+ 

를 체크 아웃 demo

0

귀하의 상태는 OR가 아닌 AND이어야합니다.

또한 와일드 카드를 사용하려는 경우 모든 문자의 와일드 카드는 %입니다. 귀하의 요청에

이러한 작은 수정은 모든 행이 자신의 비고란의 일환으로 토요일과 일요일을 가지고 있지 반환합니다

SELECT * FROM CALANDER WHERE REMARK NOT LIKE '%Saturday%' AND Remark Not like '%Sunday%'