求一ACCESS中与SQL SERVER中通用的查询语句(高手入)(200分)

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

aadmwdk

Unregistered / Unconfirmed
GUEST, unregistred user!
表TABLE1字段F_ITEM_NAME中有下列数据:
ITEM1
ITEM10
ITEM2
ITEM3
。。。
ITEM100
即ITEM+整数
现求一ACCESS、SQL SERVER中通用的查询语句,得出如下结果:
ITEM1
ITEM2
ITEM3
。。。
ITEM10
。。。
ITEM100
即以ITEM后面的整数排序,必须要ACCESS与SQL SERVER中通用的语句,在此先谢谢参与回答的朋友。
 
if object_id('tempdb.dbo.#table') is not null drop table #table
create Table #table
(
id varchar(10)
)
insert into #table
Select 'ITEM1' union all
Select 'ITEM10' union all
Select 'ITEM3' union all
Select 'ITEM2' union all
Select 'ITEM9' union all
Select 'ITEM22' union all
Select 'ITEM42' union all
Select 'ITEM62' union all
Select 'ITEM52'

Select ID From #table
order By substring(id,6,1), substring(id,5,1)
给你笨版本,100以内可以这样,100以外自己再加个substring就可以了.呵呵
 
或是类型转换Select ID From #table
order By cast(substring(id,5,4) as int)
方法很多,至于Access,自己换成Access支持的函数就可以了!按F1
 
select * from table1 order by F_ITEM_NAME
这样应该就可以了吧
 
ACCESS
select * from table1 order by int(mid(f_item_name, 5, 10))
SQL SERVER
select * from table1 order by int(substring(f_item_name, 5, 10))
ACCESS和SQL SERVER截取字符串的函数不一样;所以是没有通用的SQL,除非你在SQL SERVER搞个自定义的函数mid,就substring的别名
 
select * from Table1 order by F_ITEM_NAME
不可以吗
 
F_ITEM_NAME是字符串,字符串排序是从左到右的字符排序的,数字就是从右到左。
 
即以ITEM后面的整数排序,必须要ACCESS与SQL SERVER中通用的语句,在此先谢谢参与回答的朋友。

这个问题我只想得到一条SQL语句,这个语句能在ACCESS中和SQL SERVER中通用。

frankie_24兄的SubString()函数在ACCESS中不可用:
order By substring(id,6,1), substring(id,5,1)

但frankie_24兄给我出了一个好主意,我可以使用视图去解决。
即在SQL SERVER和ACCESS中根据不同的函数建立相同名字的视图,这样我直接用
select * from '视图名'就可以解决问题,谢谢大家的参与
 
后退
顶部