Créer une nouvelle colonne dans une vue et lui affecter un type de données

9

voici ma requête:

CREATE VIEW VIEW2
AS SELECT [Column1],
(NULL) AS column2 VARCHAR(10)
FROM VIEW1;

J'obtiens une erreur dans la troisième ligne.

Si je laisse la requête comme ceci, sans spécifier le type de données pour Column2, la requête fonctionne, mais le type de données par défaut sera int, alors que je veux avoir VARCHAR.

CREATE VIEW VIEW2
AS SELECT [Column1],
(NULL) AS column2 
FROM VIEW1;

Peux-tu aider s'il te plait? Je vous remercie!

Remarque: Seule la colonne1 est dans VIEW1. La colonne2 n'est PAS dans VIEW1, c'est une colonne générée avec des valeurs NULL.

Anna T
la source
Vous savez que les vues appelant des vues sont généralement une technique très médiocre et peuvent entraîner des problèmes de performances? Vous ne voulez vraiment pas emprunter cette voie, car il est difficile de corriger plus tard lorsque vous avez beaucoup d'enregistrements et que les problèmes de performances apparaissent. Et je ne sais pas pourquoi vous voudriez faire cela. Si la colonne n'est pas dans un tableau et qu'elle ne peut être que NULL, à quoi cela vous sert-il? Vous ne pouvez pas le mettre à jour avec d'autres valeurs
HLGEM

Réponses:

10

Vous en aurez envie.

CREATE VIEW VIEW2
AS SELECT [Column1],
cast(NULL as varchar(10)) AS column2
FROM VIEW1;
mrdenny
la source