Sql 相似函数中的多个条件

Sql 相似函数中的多个条件,sql,sql-like,Sql,Sql Like,我有一组数据,每个点要么以AB,PO,要么以LV开头。还有一些条目是我不想要的,比如MC或BV。我也有一些约会,看起来像这样 Select distinct clm.Theletter, clm.thenotedate, clm.theorigdate from table.table where clm.thenotedate>= ''2018-01-21'' and clm.theorigdate>''2018-01-01'' and clm.Theletter_NUM LIK

我有一组数据,每个点要么以
AB
PO
,要么以
LV
开头。还有一些条目是我不想要的,比如
MC
BV
。我也有一些约会,看起来像这样

Select distinct clm.Theletter, clm.thenotedate, clm.theorigdate
from table.table
where clm.thenotedate>= ''2018-01-21'' and clm.theorigdate>''2018-01-01'' 
and clm.Theletter_NUM LIKE ''HP%''
order by clm.thenotedate asc
);

我得到了一张以
AB
开头的所有我想要的东西的列表,但我也想要以
PO
LV
开头的东西?我尝试在我的第一个LIKE之后使用或,但它似乎忽略了日期函数,并检索2018-01-01之前以
PO
LV
开头的所有内容,这非常多。

如果您这样做,可能最简单:

. . . and
left(clm.Theletter_NUM, 2) in ('AB', 'PO', 'LV')

大多数数据库支持字符串上的
left()
函数。如果没有,只需使用适当的子字符串函数。

如果这样做,可能最简单:

. . . and
left(clm.Theletter_NUM, 2) in ('AB', 'PO', 'LV')

大多数数据库支持字符串上的
left()
函数。如果没有,只需使用适当的子字符串函数。

您需要在第一个like后面再次写入行的名称

Select *
From table
Where row like 1 or row like 2
或者你可以用在

Where row in ('1', '2', '3')

您需要在第一个like之后再次写入行的名称

Select *
From table
Where row like 1 or row like 2
或者你可以用在

Where row in ('1', '2', '3')

和('AB','PO','LV')中的子字符串(clm.Theletter_NUM,1,2)和(clm.Theletter_NUM,如'AB%'或clm.Theletter_NUM,如'PO%'…)
您使用的是哪种dbms?别忘了,您可以用括号对逻辑操作进行分组,以防止在添加OR子句时忽略日期比较:
(origdate>a和origdate
SQLCliff感谢您在('AB'、'PO'、'LV')和(clm.Theletter\u NUM像'AB%'或clmTheletter\u NUM像'PO%'这样的子字符串(clm.Theletter\u NUM,1,2)
和(clm.Theletter\u NUM像'AB%'或clmTheletter\u NUM像'PO%…)
您使用的是哪种dbms?不要忘记,您可以使用括号对逻辑操作进行分组,以防止在添加OR子句时忽略日期比较:
(origdate>a和origdate
SQLCliff谢谢您,这非常有效