2017-08-01 120 views
1

我的目標查詢返回或者1或0取決於某些條件是否滿足:如何檢查查詢的結果是否等於來自SQL中另一個查詢的結果之一?

SELECT TOP 1 
ISNUMERIC(LEFT(Attachment, 4)) as Column1, 
ISNUMERIC(SUBSTRING(Attachment, 5, 4)) as Column2 
--Column3 to be included 
FROM Table1 

截至目前,其結果是:

Column1|Column2 
1  0 

我想包括欄3成我的目標查詢。我想要的結果是前兩列中的1或0。我想使用以下查詢以確定結果:

SELECT 
Description 
FROM Table2 
WHERE Status = 1 

的結果如下:

AA 
BB 
CC 

我要檢查是否SELECT SUBSTRING(附件,9,2)FROM表1 =一個的結果來自表2。如果找到匹配,我想要1,如果不是0.我可能需要使用CASE結構,但我不確定。

+0

樣本數據 - 在'Table1'和'Table2'和期望的結果中的文字表格的形式 - 將是一個很大的幫助。 –

回答

1

您可以使用caseexistsin

SELECT TOP 1 ISNUMERIC(LEFT(t1.Attachment, 4)) as Column1, 
     ISNUMERIC(SUBSTRING(t1.Attachment, 5, 4)) as Column2, 
     (CASE WHEN SUBSTRING(Attachment, 9, 2) IN (SELECT Description FROM Table2 WHERE Status = 1) 
      THEN 1 ELSE 0 
     END) as Column3 
FROM Table1 t1; 
+0

謝謝。在閱讀你的答案之前,我想清楚了。我使用完全相同的結構 - 它的工作原理。 – DanteeChaos

相關問題