2013-07-02 26 views
5

誰能幫我在SQL Server中正確的語法,我有一些看起來像這樣一個大的查詢SQL Server中,「案件」

VSCS.ISCOTEACH, 
VSCS.NoMARKS, 
CASE (SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK 
     AND ISNULL(COTH.DELT_FLAG,0)=0) > 0 THEN 1 ELSE 0 END AS HASCOTEACH), 

在第三行內內Select語句是不正確的當然,我想要一個名爲HASCOTEACH的列包含1,如果查詢SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK AND ISNULL(COTH.DELT_FLAG,0)=0返回大於1,0的值,則返回0。

回答

2

你可以嘗試這樣的..

(CASE when (SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK 
     AND ISNULL(COTH.DELT_FLAG,0)=0) > 0 THEN 1 ELSE 0 END) AS HASCOTEACH 
1

嘗試類似如下:

VSCS.ISCOTEACH, 
VSCS.NoMARKS, 
CASE WHEN 
     (
     SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK 
     AND ISNULL(COTH.DELT_FLAG,0)=0 
     ) > 0 THEN 1 ELSE 0 END AS HASCOTEACH,