asp.net读取数据的有关问题

asp.net读取数据的问题
数据库两张表

create table tab1(
n_id int primary key identity,
n_name varchar(16) not null,
n_remark varchar(50)
)
insert into tab1 values('色','')
insert into tab1 values('香','')
insert into tab1 values('味','')

create table tab2(
d_id int primary key identity,
d_name varchar(16) not null,
d_remark varchar(50),
d_nid varchar(16) not null
)
insert into tab2 values('四川美食','','2,3,')
insert into tab2 values('广东美食','','1,2,')
insert into tab2 values('*美食','','1,3,')

asp.net读取数据的有关问题

显示的时候如何把tab2的d_nid字段,显示成对应tab1的n_name

例如: 
d_id   d_name     d_nid
 1     四川美食   香,味
ASP.NET SQL 读取数据

------解决方案--------------------
[code=sql]select d_id,d_name,
(CASE when charindex('1',d_nid)>0 then '色,' else ''end +
CASE when charindex('2',d_nid)>0 then '香,' else '' end +
CASE when charindex('3',d_nid)>0 then '味,' else ''end 
) as n_remark
 from tab2[code]

能满足需求,缺点:如果tab1的数据太多就不合适了
------解决方案--------------------
引用:
[code=sql]select d_id,d_name,
(CASE when charindex('1',d_nid)>0 then '色,' else ''end +
CASE when charindex('2',d_nid)>0 then '香,' else '' end +
CASE when charindex('3',d_nid)>0 then '味,' else ''end 
) as n_remark
 from tab2[code]

能满足需求,缺点:如果tab1的数据太多就不合适了

肯定不行的了  单表操作?
可以放到读取之后 构造你想要的DataTable
如果不想那样弄的话,可以参考一下 http://www.cnblogs.com/yangbingqi/archive/2011/07/02/2096094.html
------解决方案--------------------
程序处理,拆分字符split
------解决方案--------------------
like this?
http://www.cnblogs.com/insus/archive/2013/04/24/3039115.html
------解决方案--------------------
自己拼一个DataTable可以的
------解决方案--------------------
把两张表分别查出来,然后把那个字符串Split截取成一个数组, 把类型循环SwichCase ,然后每条数据的那个字段再拼成一个字符串就OK,  有点麻烦