Requêtes SQL

Utilisez la norme SQL-92 ANSI pour interroger les bases de données ODBC et les bases de données intégrées.

Instructions

FactoryTalk Optix Studio
prend en charge les instructions suivantes dans les requêtes SQL :
  • SELECT
  • DELETE
    CONSEIL: Exécutez une requête
    DELETE
    pour supprimer un enregistrement. Vous pouvez effectuer toutes les autres opérations à l'aide des méthodes OPC UA exposées par les mêmes objets. Pour plus d'informations sur les instructions et les clauses SQL, consultez la norme SQL.
  • UPDATE
FactoryTalk Optix Studio
prend partiellement en charge les instructions suivantes dans les requêtes SQL :
  • CREATE
  • DROP

Valeurs littérales

Valeurs littérales prises en charge
Type de valeur littérale
Exemple
Remarques
Intégrale
1520
N’utilisez pas de séparateurs des milliers.
Utilisez le type Int32.
Real
15.025
Utilisez
.
comme séparateur décimal.
Utilisez le type Double.
Scientifique réel
2.7000001072883606E-1
Boolean
  • true
  • false
Utilisez des minuscules pour les valeurs booléennes.
Chaîne
'string value'
Utilisez des guillemets simples pour délimiter le texte.
Insérez un guillemet simple (
'
) dans une chaîne de texte en utilisant un autre guillemet simple comme caractère d’échappement. Par exemple, pour écrire
'string'
, utilisez deux guillemets simples
''string''
dans les chaînes.
Date et heure
"2004-05-23T14:25:10.487"
Utilisez le format ISO8601 délimité par des guillemets doubles.
La notation de date et d’heure est du SQL ANSI non standard qui permet d’éviter les mots-clés
DATE
,
TIME
et
TIMESTAMP
sans ambiguïté.
Identificateur régulier
  • Column1
  • Grüße
N’utilisez pas d’espaces.
Commencez par une lettre majuscule ou minuscule.
Vous pouvez utilisez des chiffres, des lettres et des traits de soulignement
_
.
Identificateur délimité
  • "Water level"
  • "SELECT"
Utilisez des guillemets doubles (
"
) comme séparateur.
Dans l’identificateur, utilisez n’importe quel caractère à l’exception du caractère
"
.
Toute espace à la fin de l’identificateur sera ignoré.

Alias

Vous pouvez utiliser des alias dans les identificateurs, les sous-requêtes de colonnes dérivées et les tables.
Voici des exemples de requêtes avec des alias :
SELECT Timestamp AS T FROM Table1 WHERE ...
SELECT * FROM Table1 AS T WHERE ...
SELECT * FROM (SELECT * FROM Table1) AS SubQuery WHERE ...
CREATE TABLE Table1 AS SELECT Timestamp, Column1 FROM Table2

Opérateurs

Opérateurs pris en charge
Opérateur
Exemple
IN
SELECT * FROM Table1 WHERE Column1 IN (10, 20, 30)
BETWEEN
SELECT * FROM Table1 WHERE Column1 BETWEEN 100 AND 200
LIKE
... WHERE column1 LIKE '%a'
... WHERE column1 LIKE '%a%'
... WHERE column1 LIKE '%bbpi!%ppo%' ESCAPE '!'
EXISTS
... WHERE EXISTS (SELECT Table1.Column1 FROM Table2)
IS
... WHERE column1 IS NULL
NOT
... WHERE column1 IS NOT NULL
... WHERE column1 NOT IS (10, 20)
... WHERE column1 NOT BETWEEN 100 AND 200
L’opérateur
NOT
s’applique à tous les autres opérateurs.

Fonctions de la fenêtre

Fonctions de la fenêtre prises en charge
Fonction
Exemple
ROW_NUMBER
ROW_NUMBER() OVER (ORDER BY Column2)
ROW_NUMBER() OVER (PARTITION ON Column1 ORDER BY Column2)
ROW_NUMBER() OVER (window_name PARTITION ON Column1 ORDER BY Column2)
RANK
RANK() OVER (PARTITION ON Column1 ORDER BY Column2)
DENSE_RANK
DENSE_RANK() OVER (PARTITION ON Column1 ORDER BY Column2)
AVG
AVG(Column1) OVER (PARTITION BY Column2)
SUM
,
MIN
,
MAX
SUM(Column1) OVER (PARTITION BY Column2)
COUNT
COUNT(Column1) OVER (PARTITION BY Column2)
COUNT(*) OVER (PARTITION BY Column2)
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.