如何在LIKE运算符中为MS Access SQL引入多个条件

Kaj*_*ama 7 sql ms-access-2010

我想知道,如果有什么办法,如何在访问sql中实现这样的东西.

select * from my_table where column_name like ('ABC%', 'MOP%');
Run Code Online (Sandbox Code Playgroud)

我尝试使用这个:https://stackoverflow.com/a/1387797/1784053但这似乎不适用于Access.

有没有办法如何实现像基于动态条件的多重调节?这意味着,我不能使用OR没有UNION因为我的组条件是动态的.

类似的问题:我如何在LIKE运算符中引入多个条件

Sim*_*lia -1

尝试这个

功能

CREATE  FUNCTION [dbo].[fn_Split](@text varchar(8000), @delimiter varchar(20))
RETURNS @Strings TABLE
(   
  position int IDENTITY PRIMARY KEY,
  value varchar(8000)  
)
AS
BEGIN

DECLARE @index int
SET @index = -1

WHILE (LEN(@text) > 0)
  BEGIN 
    SET @index = CHARINDEX(@delimiter , @text) 
    IF (@index = 0) AND (LEN(@text) > 0) 
      BEGIN  
        INSERT INTO @Strings VALUES (@text)
          BREAK 
      END 
    IF (@index > 1) 
      BEGIN  
        INSERT INTO @Strings VALUES (LEFT(@text, @index - 1))  
        SET @text = RIGHT(@text, (LEN(@text) - @index)) 
      END 
    ELSE
      SET @text = RIGHT(@text, (LEN(@text) - @index))
    END
  RETURN
END
Run Code Online (Sandbox Code Playgroud)

询问

select * from my_table inner join (select value from fn_split('ABC,MOP',','))
as split_table on my_table.column_name like '%'+split_table.value+'%';
Run Code Online (Sandbox Code Playgroud)

  • 可能是因为 SQL 适用于 SQL Server 而不是 Access SQL。 (3认同)