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

如果SQL中满足某个条件,如何返回整数?,sql,Sql,假设我想返回数字“1”(如果存在)(customers.salary>1000) 我试过: 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”(如果存在)(customers.salary>1000)

我试过:

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怎么办?

您可以通过第一个查询返回您选择的任何数字,甚至是表达式

SELECT 10
FROM customers
WHERE EXISTS (customers.salary>'1000')
有关这方面的更多信息,您可以查看语句的语法,然后通读Oracle文档以了解更多详细信息

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

根据您的评论,以下内容适用于
T-SQL

如果存在大于1000的薪资,则返回
1
,如果不存在,则返回
NULL

SELECT MAX(1)
FROM customers
WHERE  salary>1000
如果工资超过1000,则每行返回1。所以,如果你还记下了客户的名字,你的结果将是“bob,1”(薪水超过1000),“Dave,0”(薪水低于1000)

如果你真的想要一个“1”,如果在客户表中的任何地方工资超过1000,我的建议如下:

  SELECT 1
  WHERE EXISTS (SELECT c.salary FROM customers c WHERE c.salary > 1000)
  • 你不需要在你的主要声明中提到客户
  • 您需要在EXISTS中提供完整的语句。(从中选择,从中选择)
  • 在“1000”周围使用撇号是行不通的。您需要将其识别为一个数字才能使用>运算符

@AhmadSaleh在满足条件的情况下,在单行上返回数字1。第一个例子应该有效吗?我试过一个在线编译器,但没有成功。我在一次采访中被问到这个问题。你在寻找哪个数据库?你在哪里在线尝试过?@LearningNeverStops我在www.w3schools.com上尝试过,这是一个随机的例子。我不需要将其用于特定的数据库OK,所以我理解这实际上应该是可行的。很好,比我的精选伯爵更优雅(。。。。
  SELECT 1
  WHERE EXISTS (SELECT c.salary FROM customers c WHERE c.salary > 1000)