【问题标题】:select 1 from table, select 2 from table, select 3 from table e.t.c [closed]从表中选择 1,从表中选择 2,从表中选择 3 e.t.c [关闭]
【发布时间】:2015-11-03 09:58:50
【问题描述】:

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

【问题讨论】:

  • "为什么我们总是使用 1" - 是吗?我,就个人而言,不。那么这个“总是用1”的“我们”是谁呢?
  • 我看到开发者一般使用1。

标签: mysql sql sql-server database oracle


【解决方案1】:

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

SELECT 'I am doing good' FROM tablename

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

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

在上面的示例中,我们只是检查Issue_Log 表中是否有任何行。我们只是从选择查询中返回 1。如果没有行,我们将不会得到任何数量的 1 作为结果,因此 IF EXISTS(NULL) 被评估为 false。

欢迎来到 SQL 世界。

【讨论】:

    【解决方案2】:

    是的,如果你的意思是这样的话,所有都是一样的

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

    这只是一个随机值。甚至你也可以使用*,NULL..etc 之类的

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 是的。但是,我通常看到所有开发人员都喜欢 1 。使用 100,20000, 400000000 等其他数字是否需要更多时间或任何时间。e.t.c
      • 您编辑了帖子。在存在它并不重要。你可以使用 anthing
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      • 2020-10-01
      • 1970-01-01
      相关资源
      最近更新 更多