我必须检查表中的某些行并检查每行的if-else
条件
TABLE:report
列:sl.no
,count
,total_count
,calls
样本数据:
sl.no count total_count calls
----------- ----------- ----------- -----------
1 2 6 4
2 2 7 5
3 4 9 3
在这里,我必须检查条件
if total_count > 6
select 'Y
else
select 'N'
单行我得到正确答案。如果有多行不能全部检查,则仅检查表的最后一行。
使用CASE表达式
SELECT
*,
CASE WHEN total_count > 6 THEN 'Yes' ELSE 'N' END
FROM report
您必须使用CASE。它在t-SQL中的作用类似于if-else。 MSDN
例如:
SELECT [num],[count], [total_count], [calls], CASE WHEN [total_count] > 6 THEN 'Y' ELSE 'N' END FROM t
您可以使用CASE
。您可以阅读documentation。
SELECT *,
CASE WHEN total_count > 6 THEN 'Y' ELSE ' N' END
FROM Report
"inline if"的SQL版本是CASE
:
SELECT
*,
CASE WHEN total_count > 6 THEN 'Y'
ELSE 'N'
END AS IsTotalCountGreaterThanSix
FROM YourTable;