Sql 从select语句返回“是”或“否”?
tbl_Loansumary有样本编号列。我必须检查Sample_Number列是否不为null返回“Y”,否则从下面的select语句返回“N”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
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