这个语句应该如何写!
时间:2011-07-22
来源:互联网
SQL code
SET @i = 2; IF(@i=1) THEN SELECT bs_product.productCode,bs_product.productName,bs_product.assetsName,bs_product.cycle, bs_product.spec,bs_product.unitName,bs_product.address,bs_product.ovalue,bs_product.dotknow, bs_product.status,bs_product.personName,bs_product.supperName,bs_product.buildCompanyName, bs_product.useYear,bs_product.Subject,bs_product.subject1,bs_product.inWay,bs_product.assetsCode, bs_product.quantity,bs_product.price,bs_product.remark FROM bs_product WHERE unitName LIKE '%%' AND STATUS LIKE '%%' AND productCode LIKE '%%' AND productName LIKE '%%' AND LTRIM((YEAR(NOW())-YEAR(dotknow))*12+(MONTH(NOW())-MONTH(dotknow))) LIKE '%%' AND assetsName LIKE '%%' AND ovalue <10000; END IF; IF(@i=2) THEN SELECT bs_product.productCode,bs_product.productName,bs_product.assetsName,bs_product.cycle, bs_product.spec,bs_product.unitName,bs_product.address,bs_product.ovalue,bs_product.dotknow, bs_product.status,bs_product.personName,bs_product.supperName,bs_product.buildCompanyName, bs_product.useYear,bs_product.Subject,bs_product.subject1,bs_product.inWay,bs_product.assetsCode, bs_product.quantity,bs_product.price,bs_product.remark FROM bs_product WHERE unitName LIKE '%%' AND STATUS LIKE '%%' AND productCode LIKE '%%' AND productName LIKE '%%' AND LTRIM((YEAR(NOW())-YEAR(dotknow))*12+(MONTH(NOW())-MONTH(dotknow))) LIKE '%%' AND assetsName LIKE '%%' AND ovalue >=10000 OR ovalue <100000; END IF; IF(@i=3) THEN SELECT bs_product.productCode,bs_product.productName,bs_product.assetsName,bs_product.cycle, bs_product.spec,bs_product.unitName,bs_product.address,bs_product.ovalue,bs_product.dotknow, bs_product.status,bs_product.personName,bs_product.supperName,bs_product.buildCompanyName, bs_product.useYear,bs_product.Subject,bs_product.subject1,bs_product.inWay,bs_product.assetsCode, bs_product.quantity,bs_product.price,bs_product.remark FROM bs_product WHERE unitName LIKE '%%' AND STATUS LIKE '%%' AND productCode LIKE '%%' AND productName LIKE '%%' AND LTRIM((YEAR(NOW())-YEAR(dotknow))*12+(MONTH(NOW())-MONTH(dotknow))) LIKE '%%' AND assetsName LIKE '%%' AND ovalue >=100000; END IF;
作者: AcHerat 发布时间: 2011-07-22
起到类似的作用,SQL可以直接这么写,能够获取结果集,MYSQL该如何些。
作者: AcHerat 发布时间: 2011-07-22
SQL code
--动态可以执行,但只有三个条件,有没可能直接用判断获取三个结果集,因为后边的ovalue条件是变动的。 SET @i = 2; SET @str = CASE WHEN @i = 1 THEN ' ovalue <10000 ' WHEN @i = 2 THEN ' ovalue >=10000 or ovalue <100000 ' WHEN @i = 3 THEN ' ovalue >=100000 ' END; SET @SQL = CONCAT('SELECT bs_product.productCode,bs_product.productName,bs_product.assetsName,bs_product.cycle, bs_product.spec,bs_product.unitName,bs_product.address,bs_product.ovalue,bs_product.dotknow, bs_product.status,bs_product.personName,bs_product.supperName,bs_product.buildCompanyName, bs_product.useYear,bs_product.Subject,bs_product.subject1,bs_product.inWay,bs_product.assetsCode, bs_product.quantity,bs_product.price,bs_product.remark FROM bs_product where unitName like ''','%%',''' and status like ''','%%',''' and productCode like ''','%%',''' and productName like ''','%%',''' and ltrim((year(now())-year(dotknow))*12+(month(now())-month(dotknow))) like ''','%%',''' and assetsName like ''','%%',''' and ',@str); PREPARE stmt1 FROM @SQL; EXECUTE stmt1;
作者: AcHerat 发布时间: 2011-07-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28