绝对超值(100D)!!!关于SQL的查询Select的问题,请各位大虾伸出援助之手,SOS!!! (100分)

  • 主题发起人 主题发起人 ARCHIE1
  • 开始时间 开始时间
A

ARCHIE1

Unregistered / Unconfirmed
GUEST, unregistred user!
我想使用SELECT语句把一个字段(如name)分成两个字段(如firstname,lastname),这两个字段的内容分别是NAME字段的子串。但不知如何解决?
另注,我在DELPHI5的帮助中查找到在SELECT中使用SUBSTRING语句可解决此问题,但在执行此语句(设计)时,系统报告找不到即不认识SUBSTRING命令。
SELECT SUBSTING(NAME FROM 1 FOR 4) AS FIRSTNAME, SUBSTING(
NAME FROM 5 FOR 6) AS LASTNAME
FROM STUDENT
 
SELECT SUBSTRING(NAME FROM 1 FOR 4) AS FIRSTNAME, SUBSTRING(
NAME FROM 5 FOR 6) AS LASTNAME
FROM STUDENT
 
你用的是什么数据库?
不是所有数据库都支持SUBSTING的(Paradox,Foxpro支持)
 
SELECT SUBSTRING(NAME, 1, 4) AS FIRSTNAME, SUBSTRING(NAME, 5, 1) AS LASTNAME FROM STUDENT
 
你用什么数据库啊?
SQL7里面是这样定义的:
SUBSTRING(expression, start, length)
 
兄弟门,他把SUBSTRING写成SUBSTING了。
 
别把它(Substring()函数)写进Sql语句中,那么
你也可以用Pos()和Copy()配合使用来代替Substring(),
例如:
Var
S1,S2:string;
S1:=SUBSTRING(NAME FROM 1 FOR 4);{S1:=Copy(name,1,4);}
S2:=SUBSTRING(NAME FROM 5 FOR 6) ;{S2:=Copy(name,5,6);}
//然后再写SQL
SELECT S1 AS FIRSTNAME, S2 AS LASTNAME
FROM STUDENT
 
同意李崇文的意见。
因为在不同的数据库中SUBSTRING函数的用法不一样:
在PARADOX等桌面型数据库中为
SUBSTING(NAME FROM 1 FOR 4)
//Database Desktop的帮助中可以找到
在ORACLE等大型SERVER数据库中为
SUBSTR(NAME,1,4)
所以如果要把你的程序做的与数据库无关,就不要用SUBSTRING或SUBSTR。
 
我使用的是Paradox数据库, InterBase Server后台服务器。后来我仔细查找有关资料,发现SUBSTRING适合与 Local InterBase Server。所以,我用它就失败了(我也适用李崇文介绍的方法,也不能使用)。在这,谢谢各位大虾啦!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
940
SUNSTONE的Delphi笔记
S
后退
顶部