10

谁能帮助我在 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),

当然,第三行是不正确的,如果查询返回大于 1 的值,我几乎希望调用的列HASCOTEACH包含 1,否则为 0。SELECT COUNT(*) FROM tbl_CoTeacher COTH WHERE COTH.CLAS_METG_TIME_PK=VSCS.CLAS_METG_TIME_PK AND ISNULL(COTH.DELT_FLAG,0)=0

4

2 回答 2

5

你可以这样试试。。

(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
于 2013-07-02T15:34:52.833 回答
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,
于 2013-07-02T15:36:30.197 回答