MDX эквивалентно LIKE

на SQL мне нравится искать столбец для совпадений определенной строки, используя что-то вроде этого:

SELECT t.attributeNAME
FROM myTable t
WHERE t.attributeNAME LIKE '%searchString%'

я мог бы использовать это в таблице temp, а затем использовать результат в последующих разделах более длинного скрипта, например:

--find the keys
SELECT t.attributeKEY
INTO #Temp
FROM myTable t
WHERE t.attributeNAMELIKE '%searchString%'

--use the keys
SELECT SUM(f.measure)
FROM myFacts f
   INNER JOIN #Temp t ON
    f.attributeKEY = t.attributeKEY

--use the keys again
SELECT SUM(F.measure)
FROM myOtherFacts F
   INNER JOIN #Temp t ON
    F.attributeKEY = t.attributeKEY

есть ли эквивалент этому в MDX? Если у меня есть идея, какие элементы из иерархии, которую я ищу, я могу каким-то образом использовать searchString для фильтрации к определенному набору предметы?


редактировать

как отметил Марк Полицци ответ кажется instr очень полезно в этой ситуации и я могу сделать следующее:

CREATE SET [xCube].[Set_Names] AS
    {FILTER(
    [xDimension].[xHierarchy].[xLevel].Members,
    (InStr(1, [xDimension].[xHierarchy].CurrentMember.NAME, "WIL") <> 0) 
        )
        }

GO

SELECT  
    NON EMPTY 
           [Set_Names]
    ON ROWS,
    NON EMPTY
           [Measures].[x] 
    ON COLUMNS
FROM [xCube]  

GO

SELECT  
    NON EMPTY 
           [Set_Names]
    ON ROWS,
    NON EMPTY
           [Measures].[y] 
    ON COLUMNS
FROM [xCube]  

GO

SELECT  
     NON EMPTY 
           [Set_Names]
     ON ROWS,
     NON EMPTY
           [Measures].[z] 
     ON COLUMNS
FROM [xCube]  

2 ответов


вы могли бы использовать Instr функция, даже если она не поддерживает подстановочный знак.


нет такой вещи, как like в простой MDX, но есть реализация в проекте ASSP: http://asstoredprocedures.codeplex.com/wikipage?title=StringFilters&referringTitle=Home