2009-09-24 3 views
1

2 int가 같은지 여부를 나타내는 비트를 반환하는 방법을 찾고 있습니다. 내가 다음을 시도하면 "= '근처에 잘못된 구문이 생깁니다." 내가 뭘 놓치고 있니?SQL에서 2 정수를 비교하는 방법은 무엇입니까?

이 표

FROM @ Table1Count = COUNT (*)를 선택 INT

가 (@ Table2Count = COUNT를 선택하면 내가 INT AS SQL 서버를

의 DECLARE @의 Table2Count을 2005 년

의 DECLARE @의 Table1Count을 사용하고 있습니다 *)

표 2

에서 인쇄 @ Table1Count = @ Table2Count

감사합니다. 번갈아

답변

10
IF @Table1Count = @Table2Count 
    PRINT 1 
ELSE 
    PRINT 0 

:

그냥 부록
PRINT CASE WHEN @Table1Count = @Table2Count THEN 1 ELSE 0 END 
+0

감사합니다, 내 방식으로 할당려고 생각. – NATO24

3
DECLARE @Table1Count AS INT 
DECLARE @Table2Count AS INT 
SELECT @Table1Count = COUNT(*) FROM Table1 
SELECT @Table2Count = COUNT(*) FROM Table2 
PRINT case when @Table1Count = @Table2Count then '1' else '0' end 
0

: 여기에 우리의 네트워크가 다운 순간 내가 아무것도 테스트 할 수 없습니다입니다 - I에 유래에 주위에 노는거야 이유 코드를 작성하는 것보다 - 여기 내가 말하는 것을 소금 한 알로 가져 가라. 그러나 :

일부 SQL 엔진에는 부울 변수가 있고 그렇지 않은 것도 있습니다. 오라클에서 1 + 1 = 2는 연산이 아니고 표현식이 아니기 때문에 "select 1 + 1 = 2 from dual"은 synatx 오류입니다. 다른 포스터가 지적한대로 "사례"를 사용해야합니다. 그러나 Postgres에서 "select 1 + 1 = 2"는 "true"를 표시합니다.

"<"은 int가 아닌 부울을 반환한다는 점을 제외하면 "+"와 같은 작업이지만 아이디어가 있지만 큰 효과가있는 간단하지만 강력한 아이디어 중 하나입니다. SQL과는 천천히 들어온다.

관련 문제