我正在使用WinForms C#开发一个系统。
我有两个关系表:
USER_PROFILE
| ID | NAME |
1 prof1
PERMISSIONS
| UPROFILE_ID | PERMISSION |
1 abc
1 acb
1 bca
我需要在屏幕上显示个人资料 我不知道它是否适合我的案例,或者如何实施它。我的想法是在DataGridView中显示如下:
| Profile | Permission1 | Permission2 | Permission3 |
prof1 abc acb bca
有什么建议吗?
提前致谢。
答案 0 :(得分:0)
您可以使用“case switch”将行转换为列。在实际的选择查询中,您可以动态构造列表。 例如: -
SQL> select id,name from user_profile;
ID NAME
1 U1
2 U2
SQL> select id,pname from per order by 1;
ID PNAME
1 A
1 B
2 C
SQL> select distinct u.name user_name, case when p.pname='A'then p.pname else null end permission1, case when p.pname='B' then p.pname else null end permission2 from user_profile u, per p where u.id=p.id order by 1;
USER_NAME PERMISSION1 PERMISSION2
-------------------- -------------------- --------------------
U1 A
U1 B
U2