0

一致するプロジェクトIDがない場合、「プロジェクトなし」と表示されないように見えるクエリがあります。

(select (case when prj.Proj_ID is null or prj.Proj_ID =  '' 
    then 'No Project' 
    ELSE prj.Proj_ID + ', ' + prj.[DESC] 
    END) 
from prj 
where prj.Proj_ID = other.Proj_ID)  as 'Project Description'

何か案が?

4

3 に答える 3

0
SELECT
  CASE WHEN (prj.Proj_ID IS NULL OR prj.Proj_ID = '') THEN 'No Project'
    ELSE prj.Proj_ID + ', ' + prj.[DESC]
  END as 'Project Description'
FROM
  other
  LEFT JOIN prj on prj.Proj_ID = other.Proj_ID

OTHERデータベースからPRJに参加している場合は、そのままにしておく必要があります。Proj_IDがPRJテーブルに見つからない場合、caseステートメントは「プロジェクトなし」を返します。括弧は、の条件文を解決するのに役立ちますprj.Proj_ID

元のクエリでは、結合しているテーブルを指定していないようですが、ステートメントで結合を示していますwhere prj.Proj_ID = other.Proj_ID) as 'Project Description'

于 2012-07-31T18:40:04.577 に答える
0

このようにしてみてください:

SELECT
  CASE WHEN (other.Proj_ID IS NULL OR other.Proj_ID = '') THEN 'No Project'
    ELSE other.Proj_ID + ', ' + prj.[DESC]
  END as 'Project Description'
FROM
  other
  LEFT JOIN prj on ISNULL(prj.Proj_ID,0) = ISNULL(other.Proj_ID,0)
于 2012-08-01T10:56:26.783 に答える
0

prj.Proj_ID + ', 'また、プロジェクトの説明がnullであるかどうかを確認する必要があります。そうでない場合、プロジェクトの説明と連結するとnullに戻る可能性があります。

SELECT CASE
         WHEN prj.Proj_ID IS NULL
               OR prj.Proj_ID = '' THEN 'No Project'
         ELSE prj.Proj_ID + COALESCE(', ' + prj.[DESC], '')
       END AS 'Project Description'
FROM   prj
       LEFT OUTER JOIN other
         ON prj.Proj_ID = other.Proj_ID 

(私もそうしましたので、説明がnullの場合、コンマも表示されません)

于 2012-08-01T11:23:07.750 に答える