2013-08-21 71 views
5

Trong SQL tôi muốn tìm kiếm một cột cho trận đấu của một chuỗi cụ thể sử dụng một cái gì đó như thế này:MDX tương đương với THÍCH

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

tôi có thể muốn sử dụng trong một bảng tạm thời và sau đó sử dụng kết quả trong tiếp theo các phần của tập lệnh dài hơn như vậy:

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

Có tương đương với điều này trong MDX không? Nếu tôi có một ý tưởng những gì các mặt hàng từ một hệ thống phân cấp mà tôi sau khi tôi có thể bằng cách nào đó sử dụng một searchString để lọc đến một tập hợp các mục cụ thể?


EDIT

Như đã chỉ ra bởi Marc Polizzi trả lời nó có vẻ như instr là rất hữu ích trong tình huống này và tôi có thể làm như sau:

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] 

Trả lời

2

Bạn có thể có thể sử dụng chức năng Instr ngay cả khi nó không hỗ trợ ký tự đại diện.

+0

1 ok - hãy để tôi chơi xung quanh và thêm một nỗ lực để OP Marc. – whytheq

+0

- gần đây đã thêm câu hỏi MDX khác này Marc: [SO QUESTION] (http://stackoverflow.com/questions/18375416/test-if-a-set-exists-before-trying-to-drop-it?noredirect=1 # comment27019375_18375416) – whytheq

+0

@whytheq: đã kiểm tra câu hỏi - không biết nếu có thể. –

Các vấn đề liên quan