日期:2014-05-18  浏览次数:20649 次

求一SQL语句,也很常用!
A表:
id         city       cityName
1           001         北京
2           002         上海
3  003         广州
4           004         重庆
5           005         成都
B表:
id       ciytCode  
1           001,002,003
2           003,004,005
当b.id= '1 ',下拉框里是北京
             上海
             广州

当b.id= '2 ',下拉框里是广州
                                          重庆
                                          成都

------解决方案--------------------
id city cityName
1 001 北京
2 002 上海
3  003 广州
4 004 重庆
5 005 成都
B表:
id ciytCode
1 001,002,003
2 003,004,005


select * from B表 where charindex(A.city, ', ' + citycode + ', ') > 0
------解决方案--------------------
下班了,发个差不多的例子,楼主看一下:
--解答:
create table A(F_ID int, F_Name varchar(10))
insert A select 1, '刘德华 '
union all select 2, '梁咏琪 '
union all select 3, '李嘉欣 '

create table B(F_ID int, F_FilmName varchar(50), F_StarID varchar(20))
insert B select 1, '黑马王子 ', '1,3, '
union all select 2, '向左走向右走 ', '2, '


create function fun(@F_StarID varchar(20))
returns varchar(200)
as
begin
declare @re varchar(200)
set @re= ' '
select @re=@re+F_Name+ ', '
from A
where charindex( ', '+rtrim(F_ID)+ ', ', ', '+@F_StarID)> 0

return @re
end

select F_ID, F_FilmName, F_StarID=dbo.fun(F_StarID)
from B

--result
F_ID F_FilmName F_StarID
----------- -------------------------------------------------- -------------------------
1 黑马王子 刘德华,李嘉欣,
2 向左走向右走 梁咏琪,

------解决方案--------------------
SQL里没有下拉框.
create table A表(id int,city varchar(10),cityname varchar(20))
insert into A表
select 1, '001 ', '北京 '
union all select 2, '002 ', '上海 '
union all select 3, '003 ', '广州 '
union all select 4, '004 ', '重庆 '
union all select 5, '005 ', '成都 '
create table B表(id int,citycode varchar(100))
insert into B表
select 1, '001,002,003 '
union all select 2, '003,004,005 '

select cityname
from B表,A表
where charindex( ', '+city+ ', ', ', '+citycode+ ', ')> 0
and B表.id=1