(我使用 sql server 2015)在我的订单表中,邮政编码是varchar.
我想做这样的搜索:
SELECT distinct email
FROM [dbo].[tb_Order]
where postalCode in (20004,20528,20260,20529,22060,22181,20708)
Run Code Online (Sandbox Code Playgroud)
(有更多邮政编码)
我不想将代码列表转换为("20004","20528","20708").
处理这个问题的最佳方法是什么?
如果您实际上使用的是 Sql Server 2016,您可能可以使用新的 STRING_SPLIT 命令来创建一个“表”来连接。只需将逗号分隔的整数放在 STRING_SPLIT 命令中。这是一个例子。
declare @tb_Order table (col1 int, postalcode varchar(5))
insert into @tb_Order values(1,'11111')
insert into @tb_Order values(2,'22222')
insert into @tb_Order values(3,'33333')
insert into @tb_Order values(4,'44444')
insert into @tb_Order values(5,'55555')
---------------------------------------
SELECT a.*
FROM @tb_Order a
JOIN STRING_SPLIT('11111,22222,33333,44444,55555',',')
ON convert(varchar(5),value) = a.postalcode;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |