select NO,NAME,SPECS,MTLMARK from mpart where del=0 and WKAID<>'3' group by DTYPE order by DTYPE;在这个语句基础上再筛选dtype的前两位小于16的(DTYPE类似这种04-通风机机组)
时间: 2024-04-10 18:33:32 浏览: 31
你可以在原始的SQL语句基础上添加一个条件来筛选DTYPE的前两位小于16的记录。以下是修改后的SQL语句:
```sql
SELECT NO, NAME, SPECS, MTLMARK
FROM mpart
WHERE del = 0 AND WKAID <> '3' AND CAST(SUBSTRING_INDEX(DTYPE, '-', 1) AS UNSIGNED) < 16
GROUP BY DTYPE
ORDER BY DTYPE;
```
这个修改后的语句会将DTYPE字段按照前两位进行解析,并将其转换为无符号整数进行比较。只有满足条件的记录会被返回。
相关问题
下面语句报缺少关键字:SQL_TEXT := 'INSERT INTO ' || BLANKS || ' (RSERIAL,TYPE,CONTENT) SELECT ROWNUM,2,ROWNUM||''^''||CONTENT FROM( SELECT DISTINCT B.NO, B.NO||''^''||B.NAME||''^''||B.SPECS||''^''||B.MTLMARK||''^''||C.PBNUM||''×''||D.SL||C.UNIT||''^''||C.DSNWEIGHT||''^''|| CASE WHEN C.SSSYB IN (''02-通风机事业'',''03-鼓风机事业'',''04-透平事业部事业'' )THEN B.DWSPECS WHEN C.SSSYB =''05-泵业事业部'' THEN C.HGZXH ||''^''||C.SMEMO AS CONTENT FROM GTMP_BOM_TREE A,MPART B ,SIPM10 C ,SIPM9 D ,SIPM9_OBJOF F WHERE A.CID=B.ID AND B.WKAID<>''3'' AND B.DEL=0 AND C.WKAID<>''3'' AND C.DEL=0 AND D.WKAID<>''3'' AND D.DEL=0 AND C.ID=F.ITEMID2 AND F.ITEMID1=D.ID AND D.ID=''' || OBJID || ''' AND C.ZXSX<>''机床衣'' ORDER BY B.NO )'; EXECUTE IMMEDIATE SQL_TEXT;
这个 SQL 语句缺少 INSERT INTO 后面的表名,BLANKS 值也没有给出,需要补充完整。同时,最后一行的 EXECUTE IMMEDIATE 也需要加上异常处理,以防止出错时程序崩溃。可以改为如下代码:
```
DECLARE
SQL_TEXT VARCHAR2(4000);
BEGIN
SQL_TEXT := 'INSERT INTO 表名(RSERIAL, TYPE, CONTENT) ' || BLANKS ||
'SELECT ROWNUM, 2, ROWNUM || ''^'' || CONTENT FROM (
SELECT DISTINCT B.NO, B.NO || ''^'' || B.NAME || ''^'' || B.SPECS || ''^'' || B.MTLMARK || ''^'' || C.PBNUM || ''×'' || D.SL || C.UNIT || ''^'' || C.DSNWEIGHT || ''^'' ||
CASE WHEN C.SSSYB IN (''02-通风机事业'',''03-鼓风机事业'',''04-透平事业部事业'' ) THEN B.DWSPECS
WHEN C.SSSYB =''05-泵业事业部'' THEN C.HGZXH ||''^''||C.SMEMO
END AS CONTENT
FROM GTMP_BOM_TREE A, MPART B, SIPM10 C, SIPM9 D, SIPM9_OBJOF F
WHERE A.CID = B.ID AND B.WKAID <> ''3'' AND B.DEL = 0
AND C.WKAID <> ''3'' AND C.DEL = 0
AND D.WKAID <> ''3'' AND D.DEL = 0
AND C.ID = F.ITEMID2 AND F.ITEMID1 = D.ID AND D.ID = ' || OBJID || ' AND C.ZXSX <> ''机床衣''
ORDER BY B.NO
)';
BEGIN
EXECUTE IMMEDIATE SQL_TEXT;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SQL 执行出错:' || SQLERRM);
END;
END;
```
<div class="product-specs"> <h3>规格</h3> <div class="spec-list"> <div v-for="(spec, index) in product.specs" :key="index" :class="{ 'spec-item': true, 'active': product.selectedSpecIndex === index }" @click="selectSpec(index)"> <span class="spec-name">{{ spec.name }}</span> <span class="spec-value">{{ spec.value }}</span> </div> </div>
这段代码是一个 Vue.js 组件,用于渲染产品规格列表。在该组件中,使用了 v-for 指令对规格列表进行遍历,使用 :key 绑定了每个规格的索引,使用 :class 绑定了样式类名,以便根据选中状态添加/移除样式。同时,使用 @click 绑定了选中规格的事件处理程序。在事件处理程序中,会将选中的规格索引更新到组件的数据中,以便在界面中展示当前选择的规格。