【问题标题】:How would I create a temp table in SQL Server when I have a big list of ID's当我有大量 ID 列表时,如何在 SQL Server 中创建临时表
【发布时间】:2012-08-11 02:57:09
【问题描述】:

我有一个原始 ID 列表,我应该将它们放入临时表中。我不确定这在 SQL Server 中是如何工作的:

我知道一般格式:

select PID into #myPIDs
from ... ?

我已经有一个大约 30 个 PID 的列表供我使用。它们看起来像这样:

'U388279963',
'U388631403',
'U389925814'

我该怎么做呢?谢谢!

【问题讨论】:

  • 是另一个表中的 PID、逗号分隔的变量、一组变量、硬编码还是其他?
  • 嘿,所以它们是硬编码的。我和他们有一个文本文件

标签: sql-server database temp-tables


【解决方案1】:

您的格式适用于为一个插入创建一个新的临时表。如果您需要复制和粘贴您的 ID,那么以下操作将起作用。

CREATE TABLE #myPIDs
(
     PID VARCHAR(30)
);

INSERT INTO #myPIDs
VALUES
(....),
(....);

复制并粘贴您的 PID,并使用正则表达式查找和替换来替换选中正则表达式选项的每一行。去掉最后一个','就可以了。

查找 - ^{U:z+}$

替换 - ('\1'),\n

或者,您可以让 sql server 从系统上的文件中读取您的 id。如果您详细说明您的需求,我可以给您更好的答案。

【讨论】:

    【解决方案2】:
    insert into #myPIDs (ID) 
    select 'U388279963'
    union 
    select 'U388631403'
    union 
    select 'U389925814'
    

    【讨论】:

      【解决方案3】:

      如果您的原始表(来自女巫的 ID)是可访问的,并且每个 ID 总是有一行:

      SELECT originalTable.ID
      INTO #myPIDs
      FROM originalTable
      WHERE originalTable.ID IN ('U388279963', 'U388631403', 'U389925814')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多