ich eine Ansicht mit Code haben wie folgtgenerieren Ansicht SQL dynamisch
create view v1
as
section1 --I get column1 data here
union all
section2 --I get column2 data here
union all
section3 --I get column3 data here
nun diese Ansicht an mehreren Stellen verwendet wird, und wird auf column1 oder 2 oder 3 auf dem Ort abhängig verbunden werden, wo wir diese wie verwenden unten.
select * from tabl1 t1 join v1 on t1.column1 = v1.column1
select * from tabl1 t2 join v1 on t2.column2 = v1.column2
etc
Aber wenn es auf column1 beitritt, Berechnung für column2,3 d.h, Abschnitt 2,3 ist nicht erforderlich. Gemäß den aktuellen Geschäftsregeln können wir die Ansicht nicht in mehrere Ansichten aufteilen. Nun, was ich brauche, ist, dass, wenn Ansicht in Spalte1 verbunden wird, Abschnitt2,3 sollte nicht berechnet werden und ähnlich ist der Fall mit Spalte2, Abschnitt1,3 und Spalte3, Abschnitt1,2
Könnte mir bitte jemand helfen, wie dies zu erreichen
Danke, Sree
können Sie die Ergebnismenge teilen Struktur der erwarteten Ausgabe – balaji
Manchmal SQL Server optim Izer kann nicht benötigte Teile von "union all" selbst ignorieren. Haben Sie Abfragepläne betrachtet? – Arvo
A ** View ** ist eine Abkürzung für einen (manchmal) komplexen ** SELECT **. Wenn Sie eine Variablenansicht benötigen, definieren Sie entweder unterschiedliche Ansichten, eine für jeden Fall, oder verwenden Sie einfach die expliziten SELECT (s). Wenn Ihr Anliegen Leistung ist, wäre dies der effizienteste Ansatz. – FDavidov