Pseudospalten

Bei der MI SQL-Sprache handelt es sich um eine leistungsstarke Abfragesprache, die auf der SQL-Sprache aufgebaut ist, um räumliche Abfragen zu ermöglichen. Wie alle anderen SQL-Dialekte unterstützt MI SQL Pseudospalten. Mithilfe dieser Pseudospalten können Abfragen einfach erstellt werden. Die Groß- oder Kleinschreibung muss bei der Pseudospalte nicht beachtet werden. Sofern keine anderen Angaben vorliegen, können alle Pseudospalten zudem in allen Konstrukten einer MI SQL-Anweisung verwendet werden.

Obj

Die Obj-Pseudospalte stellt das räumliche Attribut in der Datenquelle dar, unabhängig des Namens dieses räumlichen Attributs in der Datenquelle. Diese Pseudospalte kann nicht mit den ORDER BY-, LIMIT- und OFFSET-Konstrukten einer MI SQL-Anweisung verwendet werden.

Beispiele


; select the spatial attribute from all the features in the World 
; table
SELECT Obj FROM World
		
; select the spatial attribute from all features whose area is greater 
; than 1000 miles
SELECT Obj FROM World WHERE MI_AREA(Obj, 'sq mi', 'Spherical') > 1000
	

MI_GEOMETRY

Diese Pseudospalte entspricht der Obj-Pseudospalte. Sie enthält dieselben Features und Einschränkungen wie Obj.

Beispiele


; select the spatial attribute from all the features in the World 
; table
SELECT mi_geometry FROM World

; select the spatial attribute from all features whose area is greater 
; than 1000 miles
SELECT mi_geometry FROM World WHERE MI_AREA(mi_geometry, 'sq
      mi', 'Spherical') > 1000
	

MI_STYLE

In MI SQL stellt Stil einen gültigen Datentyp dar. Die MI_STYLE-Pseudospalte stellt das Attribut in der Datenquelle dar, das den Stil enthält. Das Stilattribut und dementsprechend auch die MI_STYLE-Pseudospalte unterliegen bestimmten Einschränkungen. Sie können beispielsweise nicht in den WHERE-, ORDER BY-, GROUP BY-, LIMIT- und OFFSET-Klauseln verwendet werden. Sie können die MI_STYLE-Pseudospalte lediglich aus der SELECT-Klausel heraus verwenden.

Beispiele


; select the style attribute from all the features in the World 
; table
SELECT mi_style FROM World
	

MI_KEY

Die meisten Datenquellen verfolgen das Konzept eines Primärschlüssels, der eine bestimmte Zeile im Dataset eindeutig definiert. MI SQL unterstützt Primärschlüssel entweder über die Verwendung der Attribute, die den Primärschlüssel definieren, oder die MI_KEY-Pseudospalte. Die Pseudospalte des Primärschlüssels ist ein Attribut, unabhängig von der Anzahl der für die Definition des Primärschlüssels verwendeten Attribute. Bei einem Primärschlüssel, der aus mehreren Attributen in der Datenquelle zusammengesetzt ist, ist der Wert des Primärschlüssels eine Zeichenfolge, die aus den Werten des Primärschlüssels besteht. Das Format dieser Zeichenfolge ist eine Zahl, welche die Länge des darauf folgenden Wertes gefolgt von einem Doppelpunkt und anschließend gefolgt von einer Zeichenfolgendarstellung des Wertes darstellt. Dies erfolgt für die erforderliche Anzahl an Werten.

Beispiele


; select the primary key from all features in the World table
SELECT MI_KEY from World

; select the POP_1990 attribute from the feature whose primary key
; equals 1
SELECT POP_1990 from World WHERE MI_KEY=1

; select the POP_1990 attribute from all the features in the World 
; table and sort the results by primary key
SELECT POP_1990 from World ORDER BY MI_KEY

; select the POP_1990 attribute from all the features in the World
; table and GROUP BY the primary key
SELECT POP_1990 from World GROUP BY MI_KEY

; select the POP_1990 attribute from the World table features with the 
; specified list of primary keys
SELECT POP_1990 from World WHERE MI_KEY in (1, 3, 4, 5, 76)

; select the POP_1990 attribute from the World table whose first primary key attribute equals 5 and second primary key equals “Hello”
SELECT POP_1990 from World WHERE MI_KEY='1:5:2:Hello'

	

Mapinfo_ID

MapInfo_ID kann in MI SQL-Abfragen verwendet werden. Der TAB-Datenanbieter veröffentlicht MapInfo_ID als Primärschlüssel für eine Tabelle. DescribeTableRequest gibt Informationen zu Metadaten zurück:


<ns4:KeyDefinition keyType="Implicit">
<ns4:AttributeRef>MapInfo_ID</ns4:AttributeRef>
</ns4:KeyDefinition>

Beispiele


;select state from States where MapInfo_ID=2
SELECT state FROM States WHERE MapInfo_ID='2'