在SQL
中,我喜欢使用类似这样的方式在列中搜索特定字符串的匹配项:
SELECT t.attributeNAME
FROM myTable t
WHERE t.attributeNAME LIKE '%searchString%'
我可能想在临时表中使用它,然后在较长脚本的后续部分中使用结果,如下所示:
--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过滤到一组特定的项目?编辑
正如Marc Polizzi回答所指出的那样,在这种情况下
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]
最佳答案
即使不支持通配符,您也可以使用Instr函数。
关于ssas - 相当于LIKE的MDX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18351612/