SQL Server,在'case'中选择语句

时间:2013-07-02 15:31:45

标签: sql-server tsql

任何人都可以帮助我在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),

第三行当然不正确,我想要一个名为HASCOTEACH的列,如果查询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的值,则包含1,否则为0。

2 个答案:

答案 0 :(得分:4)

你可以尝试这样..

(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 :(得分: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,