从表中选择1,从表中选择2,从表e.t.c中选择3

时间:2015-08-11 08:54:34

标签: mysql sql sql-server database oracle

这个查询都一样吗?我看不出结果有什么不同,只是根据我们的选择更改表格行中的数字。但是,为什么我们总是使用1.它是否具有一些技术含义和优势?

3 个答案:

答案 0 :(得分:2)

SELECT <Something> FROM Tablename之类的查询会在每行something中选择tablename。 现在,如果此something不是表的列,并且我们只是想避免在表上进行计算,我们使用类似12的数字或者每行可以返回的任何数字计算。他们都是一样的。 甚至像

这样的东西
SELECT 'I am doing good' FROM tablename

一些聪明的开发人员选择返回一个标量值,这对于查询的其他部分很有用,比如说

IF EXISTS( SELECT 1 FROM Issue_Log) 
BEGIN
   PRINT 'HAVE MORE WORK'
END

在上面的例子中,我们只是检查Issue_Log表中是否有任何行。我们只是从select查询中返回1。如果没有行,我们就不会得到任意数量的1作为结果,并且IF EXISTS(NULL)被评估为false。

欢迎来到SQL世界。

答案 1 :(得分:0)

您需要了解指定的数字将返回的次数与表格中的行数一样多。行数相同,但返回的值是您在SELECT语句中指定的值

答案 2 :(得分:0)

如果你的意思是

,那么一切都是一样的
 SELECT * FROM MY_TABLE
          WHERE EXISTS (SELECT 1 FROM table WHERE conditions...) 

它只是一个随机值。即使您可以使用*,NULL等等

 SELECT * FROM MY_TABLE
           WHERE EXISTS (SELECT * FROM table WHERE conditions...)