文本生成 SQL IN 子句:GUID、ID 列表一键转换

2026-07-03

为什么需要 SQL IN 子句

写 SQL 时经常要根据一批 ID 筛选数据:

SELECT * FROM dbo.Orders WHERE OrderId IN ('ORD-001', 'ORD-002', 'ORD-003');
SELECT * FROM dbo.Users WHERE UserId IN (1001, 1002, 1003);

ID 来自 Excel 一列、日志文件、接口返回或 URL 参数时,手工加引号、逗号很容易出错。ComTools 文本转 SQLTools/Excel/TextToSql)可在浏览器本地把文本列表转成 IN (...) 片段,复制后拼进完整 SQL。

支持的输入格式

粘贴任意文本,选择分隔符后拆分:

分隔符 适用场景
空格 aa bb cc 或一行多个 GUID
换行 Excel 复制一列 ID,每行一个
逗号 id1,id2,id3
句号 特殊编号列表
自定义 如分号 ;、竖线 \|

工具会 trim 空白并过滤空项。

输入示例(换行分隔 GUID)

21d611b2-ca84-45bd-80e9-3456d0bf6ac5
bb6c33f3-f142-418d-8414-9b8f33b6f3da
7fe11ef1-2a3b-4c5d-9e8f-1234567890ab

输出示例

IN (N'21d611b2-ca84-45bd-80e9-3456d0bf6ac5', N'bb6c33f3-f142-418d-8414-9b8f33b6f3da', N'7fe11ef1-2a3b-4c5d-9e8f-1234567890ab')

字符串使用 N'...'(Unicode),内部单引号自动转义为 ''

使用步骤

  1. 打开 文本转 SQL
  2. 将 ID 列表粘贴到左侧输入框。
  3. 选择与实际数据一致的分隔符(从一列 Excel 复制通常选 换行)。
  4. 点击 生成,右侧出现 IN (...) 结果。
  5. 点击 复制,粘贴到 SSMS 或你的 SQL 客户端。

完整语句示例:

SELECT * FROM dbo.ReportTools
WHERE ToolId IN (N'21d611b2-ca84-45bd-80e9-3456d0bf6ac5', N'bb6c33f3-f142-418d-8414-9b8f33b6f3da');

常见场景

场景 分隔符 后续操作
Excel 一列 OrderId 换行 SELECT / DELETE 前预览
URL 多个 GUID(逗号) 逗号 配合 URL 参数解析
日志里空格分隔 ID 空格 快速拼 IN
删除前核对 换行 SELECT COUNT(*)DELETE

与 Excel 转 SQL 的配合

需求 工具
只要 IN (...) 片段 文本转 SQL
每行生成完整 DELETE / UPDATE Excel 转 SQL
Excel 整表多列生成 INSERT INSERT 指南
ID 来自 Excel 一列且要去重 去重,再复制列到本工具

Excel 转 SQLSelect 类型也可从整表生成 WHERE col IN (...),适合 ID 仍在 Excel 里、尚未复制出来的情况。

注意事项

  • 数值 ID:若数据库列是 int,生成后需去掉 N'...' 引号,或手工改为无引号数字列表。
  • IN 列表过长:SQL Server 单语句 IN 项过多可能影响计划与性能,可考虑临时表或表值参数。
  • 隐私:文本在浏览器本地处理,不上传服务器,适合内网 ID 列表。

相关工具

常见问题

Q:输出只有 IN (...),没有 SELECT?
A:故意设计为片段,方便拼进任意 WHERE 条件;需要完整 Select 请用 Excel 转 SQL。

Q:GUID 必须大写吗?
A:不影响 SQL Server 匹配,保持与库中存储一致即可。

Q:能否从 Excel 文件直接读列?
A:本工具为纯文本;Excel 列请复制粘贴,或使用 Excel 转 SQL Select 模式。


English version