Sql 从select语句返回“是”或“否”?

Sql 从select语句返回“是”或“否”?,sql,tsql,Sql,Tsql,tbl_Loansumary有样本编号列。我必须检查Sample_Number列是否不为null返回“Y”,否则从下面的select语句返回“N” select a.Br_Loan_No ,a.Br_LookupKey, //return IsNull(s.Sample_Number) ='N' or 'Y' from dbo.tbl_Br a left outer join dbo.tbl_LoanSummary s on

tbl_Loansumary有样本编号列。我必须检查Sample_Number列是否不为null返回“Y”,否则从下面的select语句返回“N”

  select a.Br_Loan_No ,a.Br_LookupKey, //return  IsNull(s.Sample_Number) ='N' or 'Y'                            
  from dbo.tbl_Br a left outer join dbo.tbl_LoanSummary s 
  on s.Loan_no = a.Br_Loan_No order by a.Br_Loan_No
如何执行此操作?

您可以使用大小写表达式来表示此

select a.Br_Loan_No,
    a.Br_LookupKey,
    CASE WHEN s.Sample_Number IS NULL THEN 'N' ELSE 'Y' END AS [HasSample]
from dbo.tbl_Br a left outer join dbo.tbl_LoanSummary s 
on s.Loan_no = a.Br_Loan_No order by a.Br_Loan_No
您可以将大小写表达式用于此

select a.Br_Loan_No,
    a.Br_LookupKey,
    CASE WHEN s.Sample_Number IS NULL THEN 'N' ELSE 'Y' END AS [HasSample]
from dbo.tbl_Br a left outer join dbo.tbl_LoanSummary s 
on s.Loan_no = a.Br_Loan_No order by a.Br_Loan_No
您需要使用大小写表达式。它就像传统编程语言中嵌入的if语句或switch语句

SELECT a.Br_Loan_No,
       a.Br_LookupKey
       CASE
           WHEN s.Sample_Number IS NULL THEN 'N'
           ELSE 'Y'
       END AS sample_number_is_not_null
  FROM dbo.tbl_Br a
  LEFT JOIN dbo.tbl_LoanSummary s
    ON s.Loan_no = a.Br_Loan_No
 ORDER BY a.Br_Loan_no
请注意,此处创建的是计算列,而不是选择现有列的原始值。通常要求您为该列指定一个名称,因此AS sample\u number\u的使用为\u not\u null

格表达式有两种形式。其中一个选项用于将列或值与多个选项进行比较。这就像使用隐式equals:

CASE foo
    WHEN 3 THEN 'foo is 3!'
    WHEN 4 THEN 'foo is 4!'
    ELSE 'foo is not 3 or 4'
END
另一种形式,在顶部的示例中,允许在每个WHEN子句中使用任意表达式。应该注意的是,每个WHEN子句都是按顺序计算的,第一个匹配的子句就是其WHEN用作结果的子句。如果When不匹配,则使用ELSE中的结果。

您需要使用大小写表达式。它就像传统编程语言中嵌入的if语句或switch语句

SELECT a.Br_Loan_No,
       a.Br_LookupKey
       CASE
           WHEN s.Sample_Number IS NULL THEN 'N'
           ELSE 'Y'
       END AS sample_number_is_not_null
  FROM dbo.tbl_Br a
  LEFT JOIN dbo.tbl_LoanSummary s
    ON s.Loan_no = a.Br_Loan_No
 ORDER BY a.Br_Loan_no
请注意,此处创建的是计算列,而不是选择现有列的原始值。通常要求您为该列指定一个名称,因此AS sample\u number\u的使用为\u not\u null

格表达式有两种形式。其中一个选项用于将列或值与多个选项进行比较。这就像使用隐式equals:

CASE foo
    WHEN 3 THEN 'foo is 3!'
    WHEN 4 THEN 'foo is 4!'
    ELSE 'foo is not 3 or 4'
END

另一种形式,在顶部的示例中,允许在每个WHEN子句中使用任意表达式。应该注意的是,每个WHEN子句都是按顺序计算的,第一个匹配的子句就是其WHEN用作结果的子句。如果When不匹配,则使用ELSE中的结果。

在Oracle中,也可以使用

选择NVLs.Sample_编号“N”

如果为空值,则返回N


当然,在不为null的情况下,您仍然需要有Y。

在Oracle中,您也可以使用

选择NVLs.Sample_编号“N”

如果为空值,则返回N

当然,在不为null的情况下,仍然需要有Y