请问高手,在线等,放分

nup 2003-11-27 02:23:00
webInfoTable:
............
id webName calling
1 csdn.net FLASH, php技术, MS-SQL数据库
2 china.com 门户型, ASP技术, MS-SQL数据库
3 flash8.net 门户型, ASP技术, ACESS数据库
............
上表中calling列中每项技术(FLASH, PHP技术.....中间隔的是“,加上一个半角空格”。

我现在想选择表中calling和id两项,而calling列我想把相同的都排除掉,而且还要单独一列,就是想得到像下面这样的一列

calling
.............
FLASH
PHP技术
MS-SQL数据库
门户型
ASP技术
ACESS数据库
..................
怎么做


...全文
40 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lu_yanfeng 2003-11-27
  • 打赏
  • 举报
回复
另外我还要指出的是你的数据库表的机构设计不合理,应该把每一个技术分开,并且将所有可能有的技术存在另外一张表里,供这张表来引用。
另外你要将重复的技术剔除掉,但是又要包含id字段,这好像很难做到(暂时还没有想到怎么做)。
要返回id的Access版查询如下:

SELECT id, Left(calling, InStr(1,calling, ", ") - 1) AS [parsed calling]
FROM webInfoTable;
UNION
SELECT id, Mid(calling, InStr(1, calling, ", ") + Len(", "), InStr(InStr(1, calling, ", ") + Len(", "), calling, ", ") - InStr(1, calling, ", ") - Len(", "))
FROM webInfoTable;
UNION
SELECT id, Mid(calling, InStr(InStr(1, calling, ", ") + Len(", "), calling, ", ") + Len(", "))
FROM webInfoTable;

但是查出来的结果又重复的技术项,其实记录没有重复,因为两个相同名称的技术的id不一样。这个其实也是你表设计不合理的后果:)
lu_yanfeng 2003-11-27
  • 打赏
  • 举报
回复
In the query above, some Jet SQL specified scalar functions, which are in the similar forms of those in VBA, such as InStr, Mid, and Len, are used. And to port this statement to other DBMS, you should use Locate instead of Instr, SubString instead of Mid, and Length instead of Len, which are standard functions defined in the SQL standard.
lu_yanfeng 2003-11-27
  • 打赏
  • 举报
回复
The following statement is compiled through and runs correctly and smoothly on Access 2000:

SELECT DISTINCT Left(calling, InStr(1,calling, ", ") - 1) AS [parsed calling]
FROM webInfoTable;
UNION
SELECT DISTINCT Mid(calling, InStr(1, calling, ", ") + Len(", "), InStr(InStr(1, calling, ", ") + Len(", "), calling, ", ") - InStr(1, calling, ", ") - Len(", "))
FROM webInfoTable;
UNION
SELECT DISTINCT Mid(calling, InStr(InStr(1, calling, ", ") + Len(", "), calling, ", ") + Len(", "))
FROM webInfoTable;
monkeys 2003-11-27
  • 打赏
  • 举报
回复
用SPLIT分割

用DISTINCT查询相同的
swich 2003-11-27
  • 打赏
  • 举报
回复
先用sql语句把不同项取出

然后用split分割

定义一个数组存储分割出来的字符串

写一段程序判断分割出来的字符串是否重复,不重复则存人数组
DeltaCat 2003-11-27
  • 打赏
  • 举报
回复
实现是可以,但是你还要ID字段, 这样的话,就会乱套了,不知你到底什么意思?
nup 2003-11-27
  • 打赏
  • 举报
回复
你们能详细说说怎么做吗?
我现在只是想把下面那个calling表放在recordset中调用啊,不想再做一个calling表啊,可是我取出来的是形如"FLASH, php技术, MS-SQL数据库"这样的数据,我想取出“不重复”的和“只有一列”的数据。
冰蓝2099 2003-11-27
  • 打赏
  • 举报
回复
temp=split("FLASH, php技术, MS-SQL数据库",",")

insert .....temp(0).......
tigerwen01 2003-11-27
  • 打赏
  • 举报
回复
写一段后台修改程序来修改calling字段的内容。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧