SSMS添加逗号分隔符 - 快捷方式

时间:2014-01-23 08:27:28

标签: sql-server ssms

是否有为IN子句的值添加逗号的快捷方式?例如如果我的查询SELECT * FROM Persons WHERE Id IN(.....) 我已经复制了

356
9874
5975
9771
4166
....

人的Id值让我们从一些Excel文件中说,如何快速添加','逗号到每一行的末尾,这样我可以将其粘贴到IN(....)子句中?

5 个答案:

答案 0 :(得分:14)

以下是您需要做的事情:

  1. 将光标放在356之后的一个空格(您将在步骤2中看到您需要多少空间)。
  2. 按住ALT + SHIFT,然后单击向下键以获得尽可能多的数字。您应该在数字右侧看到一条蓝线。这就是为什么你需要356之后的额外空间 - 这样你就可以向下箭头按下整个列表,而不必向左或向右移动。
  3. blue line

    1. 释放按键,然后按逗号键。逗号应出现在所有行中。
    2. comma

      您也可以使用此方法为SQL查询添加引号或其他字符。

答案 1 :(得分:5)

我在SSMS 2014中使用它;

SSMS 2014 replace with delimeter 我不确定这是否可以在以前的版本中完成

答案 2 :(得分:3)

是的,这总是很痛苦......你可以做一些事情:

  • 在Excel中数字右侧的单元格中插入逗号,并将其与列表一起复制到SSMS中
  • Notepad++中,使用值复制列表并单击CTRL + H(查找并替换),在搜索模式框中单击扩展。在查找框中输入“\ n”(不带引号),然后在替换为中输入逗号“”

希望这有帮助!

答案 3 :(得分:2)

自SSMS 2012以来,您可以"绘制"在按下ALT键的同时使用鼠标在代码末尾的垂直线。 之后,只需按下逗号键即可。

答案 4 :(得分:0)

编写一个小程序,如下面的程序,然后从Launchy中将其启动。

我用C#编写了我的-叫做Commander ...可能是有史以来最好的名字和最好的程序。

using System;
using System.Windows.Forms;

namespace Commander
{
    internal class Program
    {
        [STAThread]
        private static void Main()
        {
            var clipboardText = Clipboard.GetText(TextDataFormat.Text);

            Clipboard.SetText(clipboardText.Contains(",") 
                ? clipboardText.Replace(",", Environment.NewLine)
                : clipboardText.Replace(Environment.NewLine, ",").TrimEnd(','));
        }
    }
}

编译以上内容,并从Launchy中引用生成的Commander.exe。

引用一次:

  1. 突出显示一列字符,然后剪切或复制文本
  2. 召唤发射器(如果您使用的是默认快捷方式,则按Alt键输入)
  3. 类型指挥官
  4. 粘贴
  5. 享受您的逗号分隔列表;喜欢在某处的IN语句中使用它

再次从Launchy键入Commander,并用逗号分隔列表,它将撤消该操作。阅读代码...这很明显:)