好像解决办法有点愚蠢,但是确实可以这么用。
先把那1000多个号码导出成文本。
然后在sqlserver里建一张表。
create
table
shenfenzheng
(shengfenzheng_id。
varchar(18));
然后把导出的文本用UE编辑成
insert
into
shenfenzheng
values
('xxxxxxxxxxxxxxxxxx');。
insert
into
shenfenzheng
values
('yyyyyyyyyyyyyyyyyy');。
共1000条
然后在sqlserver里执行上述语句,记得后边一定要带分号。
然后写个查询
select
from
工资表
where
身份证号
in(select
shenfenzheng_id。
from
shenfenzheng);
得到的就是你想要的结果
---------补充---------。
你所说的用户是指客户端程序的用户,和数据库用户关系应该不大,各个客户端应该在程序里都有连接数据库的文件,也就是实际操作的用户连接数据库时用的都是数据库同一个用户,所以不用在每个用户下都建临时表。
你可以查询一下外连接的用法,举个例子:
A 表 和 B 表 都有学生学号信息,B表比A表少,但要显示A表所有的内容:
select * from test_a a,test_b b。
where a.seq_no=b.seq_no(+);。
这样就表示即使在B表里面没有的记录,也显示A表的数据,这里的 test_a表和test_b表就是前面说的举例表,表名可以随意更改。
如果是oracle就可以直接用trunc函数,取trunc(地点里程,1)。
sqlsever 用left函数来做;因为你的地点里程已经是VARCHAR型就不用convert转换类型啦。
又地点里程是精确到小数点后3位。
取left(地点里程,len(地点里程)-2)即可。
语句如下:
select count(*), left(地点里程,len(地点里程)-2) from table1。
where 地点名称='北路'。
and 地点名称>='600.000'。
and 地点名称<='605.000'。
group by left(地点里程,len(地点里程)-2);。
update tablename set specialName = replace(specialName,'频道','xx') where specialName like '%频道';。
你可以把这些条码导入到数据库新建的一个表里,比如名称叫 table_code ,字段叫 code_value。
然后写SQL
SELECT * FROM TM a,table_code b WHERE TM_ID=b.code_value。
原文地址:http://www.qianchusai.com/sql%E6%89%B9%E9%87%8F%E6%9F%A5%E8%AF%A2.html