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