2013-07-02 5 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), 

Третья строка на это не правильно конечно, в значительной степени я хочу, чтобы столбец с именем 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 в противном случае.

ответ

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, 
Смежные вопросы