从表中选择行,并检查sql中列的条件

问题描述 投票:1回答:4

我必须检查表中的某些行并检查每行的if-else条件

TABLE:report

列:sl.nocounttotal_countcalls

样本数据:

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'

单行我得到正确答案。如果有多行不能全部检查,则仅检查表的最后一行。

sql sql-server database ssms
4个回答
1
投票

使用CASE表达式

SELECT
    *,
    CASE WHEN total_count > 6 THEN 'Yes' ELSE 'N' END
FROM report

1
投票

您必须使用CASE。它在t-SQL中的作用类似于if-else。 MSDN

例如:

SELECT [num],[count], [total_count], [calls], CASE WHEN [total_count] > 6 THEN 'Y' ELSE 'N' END FROM t

1
投票

您可以使用CASE。您可以阅读documentation

SELECT *, 
       CASE WHEN total_count > 6 THEN 'Y' ELSE ' N' END
FROM   Report

1
投票

"inline if"的SQL版本是CASE

SELECT 
    *,       
    CASE WHEN total_count > 6 THEN 'Y'
    ELSE 'N'
    END AS IsTotalCountGreaterThanSix
FROM YourTable;
© www.soinside.com 2019 - 2024. All rights reserved.