简单的SQL查询where子句问题 [英] Simple SQL query where clause question

查看:107
本文介绍了简单的SQL查询where子句问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello All,



考虑下表



TEMPTABLE



 Col:first Second 

数据 10 4

数据 11 4

数据 10 4

数据 10 5

数据 10 6

数据 11 4





我想删除第一列值为10且第二列值为4的行。



我试过用



select * from temptable where(first = 10 and second = 4);



但它删除所有第一个值为10的行。请让我知道更好的主意。

解决方案

如果要从结果集中消除行,请使用非相等而不是相等。例如

 选择 * 来自 temptable 其中(第一个<>  10   second<>  4 ); 


 < span class =code-keyword> DECLARE   @ TestTable   AS   TABLE (Value1  INT ,Value2  INT 

INSERT INTO @ TestTable ( Value1,Value2)
VALUES 10 4 ),( 11 4 ),( 10 , 4 ),( 10 5 ),( 10 6 ),( 11 4

- 返回所有值

SELECT Value1,Value2 FROM @ TestTable

- Value1 Value2
- 10 4
< span class =code-comment> -
11 4
- 10 4
- 10 5
- 10 6
- 11 4


- 仅返回10和4列

SELECT Value1,Value2 FROM @ TestTable
WHERE (Value1 = 10 AND Value2 = 4


- Value1 Value2
- 10 4
- 10 4


- 删除第一列值为10且第二列值为4的行

SELECT Value1,Value2 FROM @ TestTable
WHERE (Value1<> 10 Value2<> 4

- Value1 Value2
- 11 4
- 10 5
- 10 6
- 11 4


Hello All,

Conside following table

TEMPTABLE

Col : first       Second             

Data    10          4  

Data    11          4  

Data    10          4  

Data    10          5  

Data    10          6  

Data    11          4  



I want to remove rows whose first column value is 10 and second column value is 4.

I tried using

select * from temptable where (first = 10 and second = 4);

but it is removing all rows having first value as 10.Please let me know any better idea.

解决方案

Instead of equality use non-equality if you want to eliminate the rows from the result set. For example

select * from temptable where (first <> 10 and second <> 4);


DECLARE @TestTable AS TABLE (Value1 INT,Value2 INT)

INSERT INTO @TestTable (Value1,Value2) 
VALUES (10,4), (11,4),(10,4 ),(10,5 ),(10,6),(11 ,4)

-- Return All Values 

SELECT Value1,Value2 FROM @TestTable 

--Value1	Value2
--	10		  4
--	11		  4
--	10	      4
--	10	      5
--	10	      6
--	11	      4


-- Return Only 10 And 4 Columns 

SELECT Value1,Value2 FROM @TestTable
WHERE (Value1 = 10 AND Value2 = 4)


	--Value1	Value2
	--	10		  4
	--	10		  4


--Remove rows whose first column value is 10 and second column value is 4

SELECT Value1,Value2 FROM @TestTable
WHERE (Value1 <> 10 OR Value2 <> 4)

	--Value1	Value2
	--		11	4
	--		10	5
	--		10	6
	--		11	4


这篇关于简单的SQL查询where子句问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆