如果SQL中满足某个条件,如何返回整数?
假设我想返回数字“1”(如果存在)(customers.salary>1000) 我试过:如果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')); 但是如果我想返回其他数字而不是
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”周围使用撇号是行不通的。您需要将其识别为一个数字才能使用>运算符
SELECT 1
WHERE EXISTS (SELECT c.salary FROM customers c WHERE c.salary > 1000)