StructureColumn (DMX)
Zwraca wartość kolumna strukturę odpowiadającą określonej wielkości lub wartości tabeli tabela zagnieżdżona w określonym przypadek.
Składnia
StructureColumn('structure column name')
Argumenty
- Struktura nazwę kolumna.
Nazwa przypadek lub kolumna struktura wyszukiwania tabela zagnieżdżonej.
Typ wyniku
Zwraca typ zależy od typu kolumna, która odwołuje się do <nazwę kolumna w strukturze> parametru.Na przykład jeśli struktura wyszukiwania kolumny, do którego odwołują się zawiera wartość wartość skalarna, funkcja zwraca wartooć wartość skalarna.
Jeśli struktura wyszukiwania kolumna, do którego odwołują się jest tabela zagnieżdżona, funkcja zwraca wartość tabeli.Wartość zwracana tabela może być używana w klauzula FROM instrukcja sub-SELECT.
Uwagi
Ta funkcja jest polimorficzna i mogą być używane w dowolnym miejscu w instrukcja, która umożliwia wyrażeń, łącznie z listy Wybierz wyrażenie wyrażenie warunku WHERE i wyrażenie zamówienia.
Nazwa kolumna w strukturze górnictwo jest ciąg wartość i jako takie muszą być ujęte w pojedynczy cudzysłów: na przykład StructureColumn('Kolumna 1').Jeśli istnieje wiele kolumn, które mają taką samą nazwę, nazwa jest rozpoznawana w kontekście otaczający instrukcja SELECT.
Wyniki są zwracane za pomocą kwerendy StructureColumn dotyczy funkcja obecności żadnych filtrów w modelu.To znaczy, filtr modelu określa przypadki, które są uwzględnione w model wyszukiwania.Dlatego kwerendy kolumna struktury może zwracać tylko przypadków, które były używane w model wyszukiwania.W sekcji przykłady w tym temacie przykładowy kod, który przedstawia wynik model wyszukiwania filtry przypadek tabel i tabela zagnieżdżonej.
Aby uzyskać więcej informacji na temat używania tej funkcja w instrukcja DMX SELECT, zobacz Wybierz z <model>.W PRZYPADKACH (DMX) lub Wybierz z <struktury>.PRZYPADKI.
Komunikaty o błędach
Następujący błąd zabezpieczeń jest wywoływane, gdy użytkownik nie ma przeglądanie szczegółowe uprawnienie do struktura wyszukiwania nadrzędnej:
"% {Użytkownika /}" użytkownik nie ma uprawnień do drążenia wskroś struktura wyszukiwania nadrzędny "% {modelu /}' model wyszukiwania.
Następujący komunikat o błędzie jest uruchamiany, jeśli określono nazwę kolumna Nieprawidłowa struktura:
"% {Nazwa kolumna struktury /}" struktura wyszukiwania kolumna nie można odnaleźć w "% {struktury /}" nadrzędnym struktury górnictwa w bieżącym kontekście (wiersz % {wiersza /}, kolumna % {kolumna /}).
Przykłady
Firma Microsoft będzie używać następujących struktura wyszukiwania dla tych przykładów.Uwaga, że struktura wyszukiwania zawiera dwie kolumny tabela zagnieżdżonej, Products i Hobbies.Tabela zagnieżdżona w Hobbies Kolumna ma jedną kolumnę, która jest używana jako klucz dla tabeli zagnieżdżonej.Tabela zagnieżdżona w Products Kolumna jest złożone zagnieżdżona tabela ma kolumnę klucz i inne kolumny używane do wprowadzania.Poniższe przykłady ilustrują, w jaki sposób dane struktura wyszukiwania można zaprojektować uwzględnienie wielu różnych kolumn, mimo, że model nie może używać każdej kolumna.Niektóre z tych kolumn może nie być użyteczny dla uogólnianie desenie poziom modelu, ale mogą być bardzo użyteczne dla przeglądanie szczegółowe.
CREATE MINING STRUCTURE [MyStructure]
(
CustomerName TEXT KEY,
Occupation TEXT DISCRETE,
Age LONG CONTINUOUS,
MaritalStatus TEXT DISCRETE,
Income LONG CONTINUOUS,
Products TABLE
(
ProductNameTEXT KEY,
Quantity LONG CONTINUOUS,
OnSale BOOLEAN DISCRETE
)
Hobbies TABLE
(
Hobby KEY
))
Następnie należy utworzyć model wyszukiwania na podstawie struktury nowo utworzone przy użyciu poniższy przykład kodu:
ALTER MINING STRUCTURE [MyStructure] ADD MINING MODEL [MyModel] (
CustomerName,
Age,
MaritalStatus,
Income PREDICT,
Products
(
ProductName
) WITH FILTER(NOT OnSale)
) USING Microsoft_Decision_Trees
WITH FILTER(EXISTS (Products))
Przykładowa kwerenda 1: Zwracanie kolumnę ze struktury górnictwo
W następującej kwerendzie przykładowej zwraca kolumny CustomerName i Age, które zostały określone jako część model wyszukiwania.Jednakże, kwerenda zwraca również kolumna Age, który jest częścią konstrukcji, ale nie część z model wyszukiwania.
SELECT CustomerName, Age, StructureColumn(‘Occupation’) FROM MyModel.CASES
WHERE Age > 30
Należy zauważyć, że filtrowanie wierszy, aby ograniczyć przypadkach do klientów w wieku powyżej 30 ma miejsce poziom modelu.Dlatego to wyrażenie nie zwróci przypadków, które są zawarte w strukturze danych, ale nie są używane przez model.Ponieważ warunek filtra używany do tworzenia modelu (EXISTS (Products)) ogranicza przypadkach do tylko tych klientów, którzy zakupionych produktów, może być przypadkach struktury, które nie są zwracane przez kwerendy.
Przykładowa kwerenda 2: Zastosowanie filtru do kolumny struktury
W następującej kwerendzie przykładowej nie tylko zwraca kolumna modelu CustomerName i Agei tabela zagnieżdżonej Products, ale również zwraca wartość z kolumna Quantity w tabela zagnieżdżonej, który nie jest częścią modelu.
SELECT CustomerName, Age,
(SELECT ProductName, StructureColumn(‘Quantity’) FROM Products) FROM MA.CASES
WHERE StructureColumn(‘Occupation’) = ‘Architect’
Należy zauważyć, że w tym przykładzie filtr zostanie zastosowany do kolumna struktury ograniczenie przypadków klientom zapewnianiem jest "Architekt" (WHERE StructureColumn(‘Occupation’) = ‘Architect’).Ponieważ warunek filtra modelu jest zawsze stosowane do przypadków podczas tworzenia modelu tylko przypadki, zawierające co najmniej jeden kwalifikujących się wierszy w Products tabela znajdują się w przypadkach modelu.Dlatego obie filtr w tabela zagnieżdżonej Products i filtr przypadek (‘Occupation’)są stosowane.
Przykładowa kwerenda 3: Wybieranie kolumn z tabeli zagnieżdżonej
W następującej kwerendzie przykładowej zwraca nazwy klientów, którzy były używane jako przypadkach szkolenia z modelu.Dla każdego klienta kwerenda zwraca zagnieżdżoną tabela, która zawiera szczegóły zakupu.Chociaż model zawiera ProductName kolumna, model nie używa wartości ProductName kolumna.The model only checks if the product was purchased at regular (NOTOnSale) price.Ta kwerenda nie tylko zwraca nazwę produktu, ale również zwraca ilości zakupionych, który nie jest zawarty w modelu.
SELECT CustomerName,
(SELECT ProductName, StructureColumn('Quantity')FROM Products)
FROM MyModel.CASES
Należy zauważyć, że nie może zwrócić albo ProductName kolumna lub Quantity kolumna, chyba że drążenia jest włączony na model wyszukiwania.
Przykładowa kwerenda 4: Filtrowanie i zwracając kolumny tabeli zagnieżdżonej
Te następujących przykładowych kwerend zwraca sprawę i kolumny tabela zagnieżdżonej, zawarte w struktura wyszukiwania , ale nie w modelu.Model jest już filtrowany na obecność OnSale produkty, ale ta kwerenda dodaje filtr na struktura wyszukiwania kolumny, Quantity:
SELECT CustomerName, Age, StructureColumn('Occupation'),
(SELECT ProductName, StructureColumn('Quantity') FROM Products)
FROM MyModel.CASES
WHERE EXISTS (SELECT * FROM Products WHERE StructureColumn('Quantity')>1)