选择 table 并按一列中的多个值以及另一列中的值进行过滤

Selecting a table and filtering by several values from one column as well as a value from another

我正在尝试查询 table 以便 if

table1:

x   y   z
gg  1   E
ll  1   E
ff  2   NA
ee  2   E  
rr  3   E
ww  3   NA

查询 returns 仅那些在 y 列中具有 1 和 2 而在 z 列中没有 "NA" 字符串的行,如下所示:

x   y   z
gg  1   E
ll  1   E
ee  2   E  

我试过做类似的事情:

SELECT * FROM table1 WHERE (((y = 1) OR (y = 2)) AND (z <> "NA"));

我也试过:

SELECT * FROM table1 WHERE y IN (1,2) AND (z <> "NA");

None 其中有效。

试试这个 SQL 查询。我认为您的 z 列可能包含额外的空格。

SELECT * FROM Table1 AS T
WHERE T.y IN(1,2)
          AND T.z NOT LIKE '%NA%'

不是答案,只是为了测试,下面在 R 中工作正常。

#dummy data
table1 <- read.table(text = "
  x   y   z
gg  1   E
ll  1   E
ff  2   NA
ee  2   E  
rr  3   E
ww  3   NA", header = TRUE)

library(sqldf)

#testing
sqldf('SELECT * FROM table1 WHERE (((y = 1) OR (y = 2)) AND (z <> "NA"))')
sqldf('SELECT * FROM table1 WHERE y IN (1,2) AND (z <> "NA")')

#output
#    x y z
# 1 gg 1 E
# 2 ll 1 E
# 3 ee 2 E