首页 > 编程技术 > php

SQL语句中的一些参数如何用变量来代替?

发布时间:2016-11-25 16:44

可以采用exec方法
declare @tempStr varchar(350)
select @tempStr='Update weekcount set [' convert(varchar,@week) ']=[' convert(varchar,@week) '] 1 where
userid=''' replace(@user,'''','''''') ''''
exec(@tempStr)
注意: 使exec不能返回一些变量的值,而且当前的变量值在exec的语句里无效.

比如查找用户名包含有"c"的所有用户, 可以用
use mydatabase
select * from table1 where username like'%c%"
下面是完成上面功能的另一种写法:
use mydatabase
select * from table1 where charindex('c',username)>0
这种方法理论上比上一种方法多了一个判断语句,即>0, 但这个判断过程是最快的, 我想信80%以上的运算都是花在查找字
符串及其它的运算上, 所以运用charindex函数也没什么大不了. 用这种方法也有好处, 那就是对%,|等在不能直接用like
查找到的字符中可以直接在这charindex中运用, 如下:
use mydatabase
select * from table1 where charindex('%',username)>0
也可以写成:
use mydatabase
select * from table1 where charindex(char(37),username)>0
ASCII的字符即为%

我们经常在设计数据库的时候用一个系统自动分配的ID来作为我们的主键,但是在ORACLE 中没有这样的 功能,我们
可以通过采取以下的功能实现自动增加ID的功能
1.首先创建 sequence
create sequence seqmax increment by 1
2.使用方法
select seqmax.nextval ID from dual
就得到了一个ID
如果把这个语句放在 触发器中,就可以实现 和 ms sql 的自动增加ID相同的功能!


接着昨天没有写完的那个无重复的随即数字的程序,我们展开来讲!既然做这个程序的的目的是为了对买彩票的程序作准备!所以我要把 每次 的结果保存到SQL server 数据库中!我的想法是首先运行100万次摇奖的程序后,将这100万条数据存放到数据库中,然后用SQL语句选择出重复次数最多的一组数据,这个就是我的想法!大家仅仅是参考,千万不要模仿呀:)前面我们已经说过如何生成不重复的随即数,我们就利用那个函数来生成一组数据,如此重复100万次!经过3个小时的运算以后,我们得到了一组巨大的记录,下面我们来看看 如何得到 重复次数最多的一组号码呢?我们以前曾经讲过,使用distinct 可以使我们得到一个不重复的记录集(select distinct * from table1),那么怎么得到有重复的记录集呢,显然 简单的使用关键字是不可能实现的了,豆腐最终确定使用Having子句来实现这样的功能,SQL 语句如下,select * from table1 having count(*)>1 这样我们就得到了一个所有记录重复次数超过一次的记录集,我们利用如下语句 select count(*) ccount from table1 group by a1,a2,a3,a4,a5,a6,a7 having count(*)>! order by ccount desc
这样得到的第一个记录就是出现重复次数最多的那组数字。
/*
豆腐制作 都是精品
豆腐技术站
如转载 请保留完整版权信息
*/

Access数据库在用的过程中, 经常不断的进行删除和增加记录的操作,会出现以下问题:
1. 可能会使Update语句更新失败, 明明一条记录存在, 也可以select到,但在用Update时出现找不到记录, 更新失败的错误信息.
2. 会使数据库增大, 并且降低数据库操作的效率
3. 在删除记录时也不会减少数据库的大小, 并且没有可以改善数据库的相应语句
解决办法
下载Access数据库, 用Access软件打开, 并用"修复和压缩数据库"工具进行处理, 保存后再重新上传并覆盖掉原来的数据库即可解决以上的所有问题. 这种办法比较只适合于中小型的数据库, 大的如果采用上下载的办法太慢了.

标签:[!--infotagslink--]

您可能感兴趣的文章: