2014-08-27 54 views
0

我的SQL表看起来像这样的Sql部分滤波

Slno HeadName Bankcode 
1  Abc   Cash 
2  Contra  Bank1 
3  Contra  Cash 
4  Xyz   Cash 
5  Contra  Bank2 
6  Contra  Cash 
7  Pqr   Bank1 

我的要求是过滤table.i需要从HEADNAME和BANKCODE不等于=“现金” 前删除“魂斗罗”。移除slno没有2,5 所有其他行,我想以检索

我的表结构和样本数据如下

CREATE TABLE [dbo].[sampletable2](
    ID INT PRIMARY KEY , 
    [HeadName] [nvarchar](50), 
    [BankCode] [nvarchar](50) 
) 



Insert Into sampletable2 Values(1,'Abc','Cash'), 
Insert Into sampletable2 Values(2,'Contra','Bank1') 
Insert Into sampletable2 Values(3,'Contra','Cash') 
Insert Into sampletable2 Values(4,'Xyz','Cash') 
Insert Into sampletable2 Values(5,'Contra','Bank2') 
Insert Into sampletable2 Values(6,'Contra','Cash') 
Insert Into sampletable2 Values(7,'Pqr' ,'Bank1') 

Select * from sampletable2 

回答

0

给出这样的:

UPDATE sampletable2 
SET HeadName = '' 
WHERE Headname = 'Contra' AND BankCode != 'Cash' 

或删除数据行:

DELETE FROM sampletable2 
WHERE Headname = 'Contra' AND BankCode != 'Cash' 

- >将删除数据行2和5