Select 行,其中 column1、column2、column3 和 column4 != 1
Select rows where column1, column2, column3 and column4 != 1
我正在尝试制作一个网站,显示员工从客户那里得到的分数。数据看起来像这样
Name | wait|service |solution | total | date
joe 1 1 1 1 2018-09-01 00:00:00.000
joe 1 3 5 4 2018-09-02 00:00:00.000
joe 5 5 5 5 2018-09-03 00:00:00.000
joe 3 1 5 3 2018-09-04 00:00:00.000
joe 3 1 1 3 2018-09-05 00:00:00.000
joe 1 5 3 1 2018-09-06 00:00:00.000
我想弄清楚如何进行 select 查询以排除 wait、service、solution 和 total 为 1 的行。
起初我以为 where wait != 1 and service !=1 and solution != 1 and total != 1
会起作用。但这排除了所有包含 1 的记录,当我执行查询并看到结果时很明显。
但是有没有"easy"等待排除四列全为1的行?
所以当我执行查询时,它看起来像这样
Name | wait|service |solution | total | date
joe 1 3 5 4 2018-09-02 00:00:00.000
joe 5 5 5 5 2018-09-03 00:00:00.000
joe 3 1 5 3 2018-09-04 00:00:00.000
joe 3 1 1 3 2018-09-05 00:00:00.000
joe 1 5 3 1 2018-09-06 00:00:00.000
如有任何帮助,我们将不胜感激
你快到了。只需将您的逻辑更改为 OR
而不是 AND
:
select *
from TableName
where Wait<>1 or Service<>1 or solution<>1 or total<>1
如果所有 4 个字段的值为 1,则 where 子句中的条件将 return false
导致记录从结果中排除。
结果为 SQL Fiddle。
使用:
SELECT *
FROM TEST
WHERE
(COLUMN_1 + COLUMN_2 + COLUMN_3 + COLUMN_4) <> 4
OR
(COLUMN_1 = COLUMN_2
AND COLUMN_2 = COLUMN_3
AND COLUMN_3 = COLUMN_4
AND COLUMN_4 <> 1);
一个NOT
有时可以使它更容易:
WHERE NOT (wait = 1 AND service = 1 AND solution = 1 AND total = 1)
我正在尝试制作一个网站,显示员工从客户那里得到的分数。数据看起来像这样
Name | wait|service |solution | total | date
joe 1 1 1 1 2018-09-01 00:00:00.000
joe 1 3 5 4 2018-09-02 00:00:00.000
joe 5 5 5 5 2018-09-03 00:00:00.000
joe 3 1 5 3 2018-09-04 00:00:00.000
joe 3 1 1 3 2018-09-05 00:00:00.000
joe 1 5 3 1 2018-09-06 00:00:00.000
我想弄清楚如何进行 select 查询以排除 wait、service、solution 和 total 为 1 的行。
起初我以为 where wait != 1 and service !=1 and solution != 1 and total != 1
会起作用。但这排除了所有包含 1 的记录,当我执行查询并看到结果时很明显。
但是有没有"easy"等待排除四列全为1的行?
所以当我执行查询时,它看起来像这样
Name | wait|service |solution | total | date
joe 1 3 5 4 2018-09-02 00:00:00.000
joe 5 5 5 5 2018-09-03 00:00:00.000
joe 3 1 5 3 2018-09-04 00:00:00.000
joe 3 1 1 3 2018-09-05 00:00:00.000
joe 1 5 3 1 2018-09-06 00:00:00.000
如有任何帮助,我们将不胜感激
你快到了。只需将您的逻辑更改为 OR
而不是 AND
:
select *
from TableName
where Wait<>1 or Service<>1 or solution<>1 or total<>1
如果所有 4 个字段的值为 1,则 where 子句中的条件将 return false
导致记录从结果中排除。
结果为 SQL Fiddle。
使用:
SELECT *
FROM TEST
WHERE
(COLUMN_1 + COLUMN_2 + COLUMN_3 + COLUMN_4) <> 4
OR
(COLUMN_1 = COLUMN_2
AND COLUMN_2 = COLUMN_3
AND COLUMN_3 = COLUMN_4
AND COLUMN_4 <> 1);
一个NOT
有时可以使它更容易:
WHERE NOT (wait = 1 AND service = 1 AND solution = 1 AND total = 1)