创建具有一些从旧表开始的列的新表

时间:2018-08-14 19:05:46

标签: sql sql-server tsql

我有一个表'A',其中有许多列,但有些列以DM_开头(例如DM_T,DM_3 ...)。

如何用所有以DM_和数据开头的所有列创建另一个表B?我正在寻找一些动态选项,例如跟随它不起作用

DECLARE @Names VARCHAR(8000) 
SELECT @Names = COALESCE(@Names + ', ', '') + column_name   
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'A'  AND column_name LIKE 'DM_%'

SELECT @Names INTO B
FROM A

2 个答案:

答案 0 :(得分:2)

为此您需要动态SQL:

  var searchstring = "is:unread from:paypal subject:mysubject";
  var threads = GmailApp.search(searchstring);
  var UnreadMessageCount = GmailApp.getInboxUnreadCount();
        if(UnreadMessageCount > 0)
        {
           if (threads.length > 0)
           {
               for (var i in threads)
               {
                 var messages = threads[i].getMessages();
                 for (var j in messages)
                 {
                   if(messages[j].isUnread())
                   {
                         var Content = messages[j].getPlainBody();
                         var ContentLength = Content.length;
                         var ItemIDIndex = Content.indexOf("Item");
                         Do something...
                   }
                 }
             }
         }

DBFiddle Demo

答案 1 :(得分:0)

虽然我确定有很多方法可以完成此操作,但是您可以尝试使用CTE进行此交互。

DECLARE @Names VARCHAR(8000) 

;WITH MyNames (Names) AS (
    SELECT COALESCE(@Names + ', ', '') + column_name   
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE table_name = 'A'  AND column_name LIKE 'DM_%'
)

SELECT * 
FROM MyNames