2011-01-13 5 views
7

제 질문은 좀 더 일반적인 내용이지만 SQL Server에서 일부 식을 테스트하려고한다고 가정 해 봅시다. SELECT 1=1 또는 SELECT 'a' > 'B'으로 작성하고 F5 키를 눌러 결과를보고 싶습니다. SELECT 0, 1을 입력하면됩니다.
하지만 대신 오류가 발생합니다. 왜 그런가요? 그러한 표현을 즉석에서 평가하려면 무엇을 사용해야합니까?SELECT 1 = 1 not working

답변

17

SQL Server에는 부울 데이터 형식이 없습니다.

당신이 경우 문을 사용할 수 SELECT CASE WHEN 1=1 THEN 1 ELSE 0 END

+0

+1 부울 데이터 유형이 없습니다. 나는 그것을 결코 깨닫지 못했다. 나는 너무 놀랐지 만 항상 부울 데이터를 조금 사용했기 때문에 의미가 있습니다. 응답에 이미 7 표가 있습니다 ... –

1

를 사용해야합니다 : ELSE

select case when 1=1 then 'true' else 'false' end 
select case when 'a'>'B' then 'true' else 'false' end 

또는 IF를 ...

if 1=1 
    select 'true' 
else 
    select 'false' 

if 'a' > 'B' 
    select 'true' 
else 
    select 'false' 
+0

왜 유효한 응답을위한 downvote가 있습니까? 실제로, 나의 대답의 첫 번째 절반은 현재의 최고 득표의 대답과 같습니다. –

13

가장 간단한 방법은 select 1 where <test expression here>

1
이다

뒤에 표현을 넣을 수 있습니다. 당신이

select 'true' where 1=1 
select 'true' where 1<>1 

등 (3210)은 당신이 비교의 출력을 켭를 사용할 수 있습니다

IF 1+1=2 
BEGIN 
    PRINT 'One and one makes two.' 
END 
0

IF 문에 넣을 수를 의사 부울 :

select isnull((select 'false' where not(1**0=1**)) ,'true') 

반환 값으로 int를 갖는 경우 :

select isnull((select 1 where 1<1) ,0)