Mr.*_*Ken 1 sql sql-server stored-procedures
我的代码为:
Select
ProductId, ProductCode, Color
From
dbo.Product
Where
@Productname = ProductName
and ( Color != 'Orange' or Color != 'Green')
Run Code Online (Sandbox Code Playgroud)
结果包括颜色为"橙色","绿色"的产品:
1 prod0001 Orange
2 prod0002 Blue
3 prod0003 Yellow
4 prod0004 Green
5 prod0005 Orange
6 prod0006 Blue
7 prod0007 Yellow
8 prod0008 Green
Run Code Online (Sandbox Code Playgroud)
我希望得到颜色的产品!=绿色或!=橙色.
你想要的and不是or.但是,使用以下内容更容易编写not in:
Select ProductId, ProductCode, Color
From dbo.Product
Where @Productname = ProductName and
Color not in ('Orange', 'Green') ;
Run Code Online (Sandbox Code Playgroud)
你的逻辑是:
(color <> 'Orange') or (color <> 'Green')
Run Code Online (Sandbox Code Playgroud)
嗯,这总是如此.如果color为Orange,则第一个子句为false,但第二个为true:false或true为true.但是,not in编写和清除比仅更换or使用更简单and.
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |