如果在SQL中满足某个条件,如何返回整数?

时间:2014-01-20 08:20:43

标签: sql

如果EXISTS(customers.salary>'1000')

,我想要返回数字'1'

我试过了:

SELECT 1
FROM customers
WHERE EXISTS (customers.salary>'1000')

这也可行:

SELECT COUNT(salary)
FROM (SELECT DISTINCT(salary) FROM (SELECT salary FROM costomers WHERE salary>'1000'));

但如果我想返回其他不是1的号码怎么办?

3 个答案:

答案 0 :(得分:2)

 SELECT
     CASE WHEN (customers.salary>1000) THEN 1 ELSE 0 END AS overThousand
 FROM customers

工资超过1000的每一行都会带回1。所以如果你也取了你的客户名,你的结果将是“bob,1”(薪水超过1000),“Dave,0”(薪水低于1000) )。

如果客户表中任何地方的薪水超过1000,那么你真的只想要一个'1',以下是我的建议:

  SELECT 1
  WHERE EXISTS (SELECT c.salary FROM customers c WHERE c.salary > 1000)
  • 您的主要陈述中不需要FROM客户
  • 您需要在EXISTS中填写完整的声明。 (SELECT,FROM,WHERE)
  • 在'1000'周围使用撇号不会工作。您需要将其识别为使用>的数字。操作者。

答案 1 :(得分:0)

您可以通过第一个查询或表达式返回任意数量的选择。

SELECT 10
FROM customers
WHERE EXISTS (customers.salary>'1000')

有关详细信息,请查看SELECT语句的语法,然后阅读Oracle文档中的SQL expressions,了解更多详情。

编辑: 为了澄清,这个答案适用于Oracle数据库,即使您在寻找答案时并不关心数据库。

答案 2 :(得分:0)

跟进您的评论,以下内容适用于T-SQL 如果工资大于1000,它将返回1,如果不存在,则返回NULL

SELECT MAX(1)
FROM customers
WHERE  salary>1000