2013-08-21 32 views
5

W SQL Lubię szukać kolumnę do dopasowania danego łańcucha za pomocą czegoś takiego:MDX równoważne LIKE

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

może lubię używać, że w tabeli temp, a następnie użyć wynik w kolejnych odcinki dłuższy skrypt tak:

--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 

Czy istnieje odpowiednik tego w MDX? Jeśli mam pojęcie, jakie elementy z hierarchii, której szukam, czy mogę użyć filtru searchString do określonego zestawu elementów?


EDIT

Jak podkreślił Marc Polizzi odpowiedź wydaje się instr jest bardzo przydatne w tej sytuacji i mogę wykonać następujące czynności:

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] 

Odpowiedz

2

Możesz być w stanie użyj funkcji Instr, nawet jeśli nie obsługuje symboli wieloznacznych.

+0

+1 ok - niech mnie bawić i dodać próbą OP Marc. – whytheq

+0

- ostatnio dodane to inne pytanie MDX Marc: [W TAKIM PYTANIE] (http://stackoverflow.com/questions/18375416/test-if-a-set-exists-before-trying-to-drop-it?noredirect=1 # comment27019375_18375416) – whytheq

+0

@whytheq: sprawdził pytanie - nie mam pojęcia, czy to możliwe. –