SELECT A, B, C FROM TUser
UNION
IF EXISTS(SELECT dataUserId FROM TUserData WHERE DataId = @dataId AND UserId = @userId)
BEGIN
SELECT @dataUserId = dataUserId FROM TUserData WHERE DataId = @dataId AND UserId = @userId
SELECT A, B, C FROM TUser WHERE UserId = dataUserId
END
답변
당신은 그런 식으로 변환 할 수 있습니다
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
WHERE EXISTS (SELECT columns FROM table_name3)
잘못된 조합 사용. 노동 조합에서 당기는 모든 테이블은 동일한 컬럼을 가져야합니다. 더 좋아하는 것 :
SELECT A, B, C FROM TUser
UNION
SELECT A, B, C FROM TUser WHERE UserId = dataUserId
모두들 감사합니다 ... 나는 모든 해결책에서 해결책을 얻었습니다. – spj
그것은 잘못된 SQL입니다. 함수/저장 프로 시저와 같은 것을 작성하려고합니다.
이것은 UNION은 (http://www.w3schools.com/SQL/sql_union.asp)를 작동하는 방법이다 :
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
두 SELECT 문이 동일한 수의 열이 있어야합니다. 열은 유사한 데이터 유형을 가져야합니다. 또한 각 SELECT.의 열은 동일한 순서 여야합니다.
대신 IF 문 절은 WHERE에 존재 그와 같은 union
. 대신 if exists
당신이 간단하게 사용할 수있는 사용의
inner join
:
select A, B, C from TUser
union
select u.A, u.B, u.C from TUser u
inner join TUserData t on t.dataUserId = u.UserId
where t.DataId = @dataId and t.UserId = @userId
하지만, 내부 조인 사용하는 경우 하나 개의 작은 차이가 있습니다. TUserData 테이블에서 둘 이상의 레코드를 일치 시키면 각 일치 항목에서 결과를 반환하는 경우가 아니라 select @dataUserId=...
과 같이 하나를 제외한 모든 결과를 임의로 버리지 않습니다.
(현재 양식에서는 공용체가 무의미합니다. 첫 번째 쿼리의 테이블에서 모든 레코드를 가져 오면 두 번째 쿼리에서 얻은 모든 내용이 중복되지만, 첫 번째 쿼리와 실제로) 테이블에서 모든 것을 얻을하지 않습니다
허용하지 않는다당신은 내부 if
문을 사용할 수 없습니다
SELECT @dataUserId = dataUserId FROM TUserData
WHERE DataId = @dataId AND UserId = @userId
IF (@dataUserId IS NOT NULL)
BEGIN
SELECT A, B, C FROM TUser
UNION
SELECT A, B, C FROM TUser WHERE UserId = @dataUserId
END
ELSE
SELECT A, B, C FROM TUser
SELECT A, B, C
FROM TUser
UNION
SELECT u.A, u.B, u.C
FROM TUser AS u
JOIN TUserData AS d ON u.UserId = d.dataUserId
WHERE d.UserId = @userId
AND d.DataId = @dataId
- 1. 목표 C if 문이 작동하지 않습니다.
- 2. Python if 문이 예상대로 작동하지 않습니다.
- 3. Chrome에서 JQuery 템플릿 {{if}} 문이 작동하지 않습니다.
- 4. PHP if 문이 인터넷 익스플로러에서 작동하지 않습니다.
- 5. PHP Mysql if 문이 작동하지 않습니다.
- 6. javascript If 문이 작동하지 않음
- 7. Javascript - if 문이 작동하지 않습니까?
- 8. Union과 If Exists - 함께 작동하지 않음 - 도와주세요
- 9. Break 문이 작동하지 않습니다.
- 10. for 문에 중첩 된 if 문이 작동하지 않습니다.
- 11. 자바 스크립트 if 문이 HTML 페이지에서 제대로 작동하지 않습니다.
- 12. 왜이 간단한 django IF 문이 작동하지 않습니까?
- 13. jquery if 문이 배경 이미지를 변경하지 않습니다.
- 14. sqlite3 close 문이 작동하지 않습니다.
- 15. removeClass jquery 문이 작동하지 않습니다.
- 16. if 문이 올바르게 작동해야합니까?
- 17. Oracle SELECT 문이 작동하지 않습니다. - ORA-00942
- 18. 값이 0 일 때 if 문이 작동하지 않는 경우 (PHP)
- 19. Doctrine ORM에 "update if exists"를 구현합니다
- 20. If-Else 문이 플립 플롭입니다.
- 21. IF ELSE 문과 Select 쿼리가 작동하지 않습니다.
- 22. if else 문이 작동하지 않는 이유를 이해하려고 시도 했습니까?
- 23. SQL Not Like 문이 작동하지 않습니다.
- 24. SQL CASE 문이 올바르게 작동하지 않습니다.
- 25. "outfile에"sql 문이 jdbc와 작동하지 않습니다
- 26. 문이 작동하지 않는 경우
- 27. 유닉스 셸 ksh : if 문이 두 부분을 모두 실행하지 않습니다.
- 28. PHP ifif 문은 초기 if 문이 거짓 일지라도 실행되지 않습니다.
- 29. help : javascript if 문이 잘못된 값을 반환합니다.
- 30. Pathogen을 사용하여 시작할 때 "exists : if :"명령이 실패하면
, 또한 노동 조합은 – hallie
@hallie 모두 선택 제표에 열 같은 수 있어야한다고 :. 음, 주요 문제가 있다는 것입니다 무엇 union 지시문을 따르는 것은 select 문이 아닙니다. – Guffa