20. marts 2003 - 12:31Der er
7 kommentarer og 1 løsning
skjul kolonner i visning fra select statement
hvordan undgår man at vise en kolonne som man bruger til sortering, men ikke ønsker fremvist. jeg ønsker at sortere mine data efter emloyeeid, men har ingen interesse i at brugeren af DB ser denne kolonne
select distinct employees.employeeid, employees.firstname, employees.lastname, employees.city from employees, orders where orders.EmployeeID in (select employees.employeeid from employees, orders where orders.orderdate <'1996-08-01' and orderdate >'1996-06-30' ) order by employees.firstname
Hvis brugerne f.eks. har adgang gennem Query analyzer eller lignende, så kan de se alt hvad deres brugernavn giver adgang til. Hvis du viser data gennem en web-server, så kan du jo bare undlade at vise den kolonne....
Ja, du kan f.eks. gøre det ved at lave et view, der indeholder din oprindelige SQL-sætning:
select distinct employees.employeeid, employees.firstname, employees.lastname, employees.city from employees, orders where orders.EmployeeID in (select employees.employeeid from employees, orders where orders.orderdate <'1996-08-01' and orderdate >'1996-06-30' ) order by employees.firstname
Og så kun hente de felter du vil have fra viewet
select firstname, lastname, city from viewnavn
Men det vil være langt smartere at du bare undlader at vise ID feltet der hvor brugerne skal se dine data.
pierrehusted: jeg er ikke helt med påhvad du siger... hvad er det med "viewnavn"? og hvad mener du med at hente de felter fra viewet, jeg behøver? hvis vi tar udgangspunkt i den SQL sætning, der er kreeret, er der en løsning ud fra det? og hvis ikke, er der andre løsninger som ligger umiddelbart for? MVH. Herman
Første laver du et view. Det view har jeg valgt at kalde ANSATTE.
CREATE VIEW dbo.ANSATTE AS select distinct employees.employeeid, employees.firstname, employees.lastname, employees.city from employees, orders where orders.EmployeeID in (select employees.employeeid from employees, orders where orders.orderdate <'1996-08-01' and orderdate >'1996-06-30' ) order by employees.firstname
Når så du skal bruge dataene henter du dem fra viewet :
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.