Nous avons une interface héritée qui insère dans la table T1 les valeurs "BODY_TEXT" (varcharmax)
, "BODY_BIN"(varbinarymax)
. Il insère actuellement juste à l'une des colonnes, et laisse l'autre NULL. Maintenant, nous avons implémenté une nouvelle interface - la table T2 qui a seulement la colonne "BODY"(varbinarymax)
.Colonnes doubles dans une vue SQL
Je dois créer une vue V1 qui devrait remplacer T1, ce qui signifie
CREATE VIEW V1 AS
SELECT
T2.UNIQUE_ID AS UNIQUE_ID,
etc ...
Maintenant, je ne sais pas comment traiter T2.BODY
colonne ... Je dois faire quelque chose comme T2.BODY AS (whatever is not null(BODY_BIN, BODY_TEXT))
. Il doit également supporter varcharmax
vs varbinarymax. J'ai essayé d'implémenter COALESCE
ce qui signifie T2.BODY AS COALESCE(BODY_BIN, BODY_TEXT)
mais cela ne fonctionne pas. ne Refait
COALESCE(BODY_BIN, BODY_TEXT) AS BODY
T2.BODY AS BODY
- Dans le tableau de l'héritage que nous avait T1 avec deux colonnes - BODY_BIN et BODY_TEXT. L'utilisateur a inséré une valeur et laissé l'autre vide, puisque le corps est binaire ou textuel mais pas les deux. La nouvelle interface a une table T2 qui n'a qu'une colonne, BODY (varbinarymax), et on m'a demandé de supprimer la table T1 et de créer une vue avec le même nom. Signification afin de préserver la comparabilité vers l'arrière, ils devraient toujours être en mesure d'effectuer "insérer dans T1 valeurs X, Y" (X est DATA_BIN ou NULL, et Y est DATA_TEXT ou NULL), mais le contenu (tiré de X ou Y) devrait être traduit en une colonne dans la table T2 - BODY. Je n'ai aucune idée de comment tirer celui-ci.
Pouvez-vous m'aider?
Merci,
Nili
Je ne suis pas sûr de comprendre. COALESCE (, ) devrait fonctionner. –
Oui, mais notez que la direction est différente - généralement vous "mappez" la table à afficher, ce qui signifie COALESCE (DATA_BIN, DATA_TEXT) comme T.BODY, mais j'ai besoin de mapper une valeur maximale de la vue, ce qui signifie T2.BODY AS COALESCE (DATA_BIN, DATA_TEXT), ou quelque chose comme ça ... – Nili
Suis-je en train de lire ceci correctement: vous voulez changer le nom de la colonne en fonction du type de données retourné? – tobias86