2014-04-14 3 views
-1

나는이 쿼리를 아래에두고 있지만 어딘가에 'example, example'은 쉼표를 빼고 'exampleexample'의 결과를 줄 어딘가에 넣을 필요가있다. 어디서 이걸 넣을까요? (저는 SQL에 익숙하지 않습니다)케이스 T-SQL

SELECT DISTINCT i.ServerName, 'Standalone' AS Host, s.Status, s.Classification, 
       s.Location 
FROM tblSQLInstances i 
    LEFT OUTER JOIN tblServer s 
    on i.ServerName = s.ServerName 
WHERE i.IsClustered = 0 
    AND i.InstanceStatus != 'Demised' 

UNION 

SELECT esr.ServerName, e.EnvironmentDescription AS Host, s.Status, s.Classification, 
     s.Location 
from tblSQLEnvironmentServerRel esr 
    INNER JOIN tblSQLEnvironments e 
    ON esr.EnvironmentID = e.EnvironmentID 
LEFT OUTER JOIN tblServer s 
    on esr.ServerName = s.ServerName 
LEFT OUTER JOIN tblSQLInstances i 
    on i.EnvironmentID = e.EnvironmentID 
WHERE i.InstanceStatus != 'Demised' 

죄송합니다.

+1

'example, example'을 반환하는 열은 어느 것입니까? 예를 정확한 용어입니까, 아니면 쉼표를 제거해야합니까? 또한, 어떤'sql' 제발 (Oracle, MySql, SqlServer)? – StuartLC

+0

Err ... 'example, example'이 어디에서 왔는지에 따라 다릅니다. 어떤 필드가 들어 있는지 알기 전까지는 답변을 얻지 못합니다. 테이블의 데이터가 어떻게 보이는지 알 수 있습니다. 한 필드에 이미 'example, example'이 포함되어 있으면 문자열 연산이 그리 좋지는 않지만 단순히 REPLACE 만 사용할 수 있습니다. 실력 있는. –

답변

1

의견에 따라 하나 이상의 열에서 쉼표를 제거하려면 REPLACE 기능을 사용할 수 있습니다. 다음과 같이 노조의 전체 결과에 대해 이렇게 할 수 있습니다.

SELECT 
    REPLACE(ServerName, ',', ''), 
    Host, 
    Status, 
    Classification, 
    Location 
FROM 
(
    SELECT 

    DISTINCT i.ServerName, 'Standalone' AS Host, s.Status, s.Classification, 
      s.Location 
    FROM tblSQLInstances i 
     LEFT OUTER JOIN tblServer s 
     on i.ServerName = s.ServerName 
    WHERE i.IsClustered = 0 
     AND i.InstanceStatus != 'Demised' 

    UNION 

    SELECT esr.ServerName, e.EnvironmentDescription AS Host, s.Status, 
      s.Classification, s.Location 
    FROM tblSQLEnvironmentServerRel esr 
     INNER JOIN tblSQLEnvironments e 
     ON esr.EnvironmentID = e.EnvironmentID 
     LEFT OUTER JOIN tblServer s 
     on esr.ServerName = s.ServerName 
     LEFT OUTER JOIN tblSQLInstances i 
     on i.EnvironmentID = e.EnvironmentID 
    WHERE i.InstanceStatus != 'Demised' 
) X;