【发布时间】:2015-10-20 02:55:53
【问题描述】:
假设我有一张桌子
SELECT * INTO MyTable FROM (
VALUES ('col1_a', 'col2_a', 'col3_a', 'coln_a'),
('col1_b', 'col2_b', 'col3_b', 'coln_b'),
('col1_c', 'col2_c', 'col3_c', 'coln_c')
) t (col1, col2, col3, coln)
我只想删除与我指定的每一列值匹配的行(考虑行高度相似,只有一两列不同)
我当然会写
DELETE MyTable WHERE col1='col1_a' AND col2='col2_a' AND col3='col3_a' AND coln='coln_a'
DELETE MyTable WHERE col1='col1_b' AND col2='col2_b' AND col3='col3_b' AND coln='coln_b'
但这太烦人了。我想知道是否可以通过简单地列出值来方便地编写它?我试过这个
DELETE MyTable FROM (
VALUES ('col1_a', 'col2_a', 'col3_a', 'coln_a'),
('col1_b', 'col2_b', 'col3_b', 'coln_b')
) t (col1, col2, col3, coln)
但这只是删除了 MyTable 中的所有行,请帮忙。
【问题讨论】:
标签: sql-server tsql sql-server-2012