2011-08-08 2 views
0

결과 세트에서 PHP를 사용하여이 작업을 수행해야 할 수도 있습니다.하지만 DB가이 작업을 수행 할 수 있기를 바랍니다. 필드를 검사하고 조건과 일치하는 경우 다른 필드를 다른 필드 + 문자열과 동일하게 설정하십시오. 여기 내 시도 :Select에서 사용되는 CASE의 필드를 일반 텍스트와 연결 하시겠습니까?

SELECT CASE UnityReq WHEN '1' THEN Table + ' (Unity)' ELSE Table END AS Type 

표가 이벤트와 같으면 '이벤트 (Unity)'를 유형으로 가져오고 싶습니다.

난 당신이 문자열로 결합하는 경우 필드를 캐스팅해야 다른 포스트에서 본

, 그래서 나는이 시도 :

SELECT CASE WHEN UnityReq = 1 THEN CAST(Table AS NVARCHAR(200)) + ' (Unity)' ELSE Table END AS Type 

을 그리고 MySQL의 CONCAT 함수를 시도했다 : 나는 '

SELECT CASE UnityReq WHEN 1 THEN CONCAT(Table, ' (Unity)') ELSE Table END AS Type 

을 ve는 WHEN이 숫자 주위에 따옴표를 사용하거나 사용하지 않고 (INT 필드 인 것처럼) 시도했으며, 내가 찾은 모든 형식에 대해 CASE 대신 항상 SQL 구문 오류가 발생했습니다. 나는 내가 갈 수있는이 명령의 모든 버전을 시험해 본 것처럼 느낀다. 그러나 나는 어떤 행운을 느끼지 않고있다. 어떤 포인터?

답변

1

네가 후회하고있는 건 아니지만, 해설이야. 같은

뭔가 :

SELECT 
    CASE WHEN UnityReq = 1 THEN CONCAT(Table, ' (Unity)') ELSE Table END AS Type 
    FROM ... 
+0

이상한,했다. 나는 그 전에 (제 3 시도를 보았습니다.)하지만 분명히 CASE 문에서 SQL이나 아마도 내 구문에 잘못된 것이있었습니다. 감사! –

+0

CASE 열 WHEN 값 또는 CASE WHEN expr을 사용할 수 있습니다. 나는 CASE 문법과 CAST/CONCAT의 충분한 조합으로 당신이 거기에 있었을 것이라고 생각한다 :-) – RET

관련 문제