Sql server SQL查询联接元素

Sql server SQL查询联接元素,sql-server,Sql Server,我会重新写下我的疑问,以便更容易理解。 我有一个名为SeqNumbers的表,其中只有一列名为PossibleNumbers的数据,其值从1到10.000。 然后我有另一个名为Terminals的表,其中一列有终端的序列号。我想要的是将终端表中不存在的所有序列号从1到10.000。 我创建了SeqNumbers表只是为了这样做。。。也许有另一个不用它的解决方案。。。那对我很好。 我的问题是: SELECT PossibleNumbers from SeqNumbers Where Possib

我会重新写下我的疑问,以便更容易理解。 我有一个名为
SeqNumbers
的表,其中只有一列名为
PossibleNumbers
的数据,其值从1到10.000。 然后我有另一个名为
Terminals
的表,其中一列有终端的序列号。我想要的是将
终端
表中不存在的所有
序列号
从1到10.000。 我创建了
SeqNumbers
表只是为了这样做。。。也许有另一个不用它的解决方案。。。那对我很好。 我的问题是:

SELECT PossibleNumbers from SeqNumbers 
Where PossibleNumbers NOT IN (SELECT SerialNumbers from Terminals)**
基本上,我想列出数据库中不存在的所有终端序列号。 这个查询很好,我想。。。但问题是我不希望所有结果都在一列中。。我希望这些结果显示在4或5列中。 出于我的目的,我只能像这样使用查询的结果。我无法使用编程方法来实现这一点

希望这是更清楚的现在。。。谢谢你的帮助

select x, x+1000  from tablename
这对你有用吗


这对您有用吗?

您可以使用脚本语言来解析MySQL结果,以您喜欢的方式对其进行格式化。您是否使用PHP访问数据库?如果是这样,让我知道,我可以为你做一个

我刚看到你的新问题。在这种情况下,列的顺序将由
SELECT
语句排序,您也可以进行排序。以下是一个例子:

SELECT Column1, Column2 FROM my_table ORDER BY Column1, Column2 ASC

您可以使用脚本语言解析MySQL结果,以任意方式对其进行格式化。您是否使用PHP访问数据库?如果是这样,让我知道,我可以为你做一个

我刚看到你的新问题。在这种情况下,列的顺序将由
SELECT
语句排序,您也可以进行排序。以下是一个例子:

SELECT Column1, Column2 FROM my_table ORDER BY Column1, Column2 ASC

如果我读对了,你可能需要做一个自我连接;比如:

SELECT
   LeftValues.ColA,
   RightValues.ColA AS ColB
FROM YourTable LeftValues
    LEFT JOIN YourTable RightValues ON LeftValues.ColA = RightValues.ColA - 1000
WHERE LeftValues.ColA < 1000
选择
LeftValues.ColA,
RightValues.ColA AS ColB
从您的表LeftValues
LEFT JOIN YourTable RightValues ON LeftValues.ColA=RightValues.ColA-1000
其中LeftValues.ColA<1000

注意:使用对您有意义的联接(如果您愿意接受ColB中的null,请使用左图;如果您只希望在两个值都存在的情况下使用内环)

如果我读的是右图,您可能需要进行自联接;比如:

SELECT
   LeftValues.ColA,
   RightValues.ColA AS ColB
FROM YourTable LeftValues
    LEFT JOIN YourTable RightValues ON LeftValues.ColA = RightValues.ColA - 1000
WHERE LeftValues.ColA < 1000
选择
LeftValues.ColA,
RightValues.ColA AS ColB
从您的表LeftValues
LEFT JOIN YourTable RightValues ON LeftValues.ColA=RightValues.ColA-1000
其中LeftValues.ColA<1000

注意:使用对您有意义的连接(如果您愿意接受ColB中的null,请使用左键;如果您只希望在两个值都存在的情况下使用内部键)

我们可以查看查询吗?@Carlos:请用你正在使用的任何语言或技术(例如SQL、Java、.NET等)来标记你的问题。由于有趣的标签列表,您将获得更多的观众。我们可以查看查询吗?@Carlos:请用你正在使用的任何语言或技术(例如SQL、Java、.NET等)来标记你的问题。由于有趣的标签列表,您将获得更多的观众。很抱歉投了反对票,因为我知道问题在您身上发生了变化。但这不是他想要的,我们需要得到一个比这个更好的答案。很抱歉投反对票,因为我知道你的问题变了。但这不是他想要的,我们需要得到一个比这个更好的答案。我不理解你的疑问。。。我会准确地描述我想要什么也许我还不清楚。。。很抱歉我有一个表TabA,我用一个collumn创建,数字从1到10.000。我有另一个带有一些数据的表格TabB,其中一个collumn是os产品的序列号。我想知道从1到10.000的标签中不存在的所有序列号。我已经问过了,但不在。。。但是我在一个单独的实验中得到了所有的结果。现在我想通过多个collumn来分离这个结果。想象一下,举例来说,每一个都是100。5 ou 6 COLLMNS很好。所以听起来你想要的完全是为了显示,ColA和ColB值没有相关性?我的查询是基于这些值在数学上相关的假设(例如,colA=ColB-1000)。虽然在SQL中不相关的解决方案是可能的,但它可能不是最好的方法;您可能应该将查询按原样返回给某个应用程序,并让该应用程序以您需要的方式显示它。如果需要SQL解决方案,请更新您的问题以包含更多详细信息/更好的示例和标记,以包含您的SQL方言。嗨,Chris,我更新了我的问题。。也许你现在能更好地理解它了。我不能使用其他应用程序来做这项工作。。我真的不得不多次与结果串通。。正如你现在看到的,这些数字之间没有数学上的关联。。。希望你能帮忙。谢谢你,我不明白你的疑问。。。我会准确地描述我想要什么也许我还不清楚。。。很抱歉我有一个表TabA,我用一个collumn创建,数字从1到10.000。我有另一个带有一些数据的表格TabB,其中一个collumn是os产品的序列号。我想知道从1到10.000的标签中不存在的所有序列号。我已经问过了,但不在。。。但是我在一个单独的实验中得到了所有的结果。现在我想通过多个collumn来分离这个结果。想象一下,举例来说,每一个都是100。5 ou 6 COLLMNS很好。所以听起来你想要的完全是为了显示,ColA和ColB值没有相关性?我的查询是基于这些值在数学上相关的假设(例如,colA=ColB-1000)。虽然在SQL中不相关的解决方案是可能的,但它可能不是最好的方法;你