/*----------------------------------------------------------------------------*/
问题1[--------]
Select t.* From v_T04_Product_m t where t.pcode = 'C02-422';
Select t.* From v_T04_Product_m t where t.pcode = 'TEST08';
pcode C02-422 pid is null
pcode TEST08 pid 40003314
select *
FROM V_T04_PRODUCT_M
WHERE PCODE = 'C02-422'
AND STATUS = '1'
AND PID <> 40003314;
-------------------------------
SELECT COUNT(1)
INTO ICOUNT
FROM V_T04_PRODUCT_M
WHERE PCODE = :PCODE
AND STATUS ='1'
AND PID <> :PID;
IF ICOUNT > 0 THEN
RAISE_APPLICATION_ERROR(-20001,
'车辆型号(' || :PCODE || ') 在系统中重复!');
/*----------------------------------------------------------------------------*/
最近遇到一个sql问题。老大们让我把一个表中的一列数据做更新。更新的内容和对照表有给提供。后来仔细查看资料 总结出这样的sql
语句。
update 更新表 b set(b.需要更新的字段) = (
select a.参考更新字段 from 对照表 a where a.对照表旧字段=b.更新表需要更新的字段
)
注意:一定要用where条件。
这个sql的意思试试活把b表的需要更新字段通过查询对照表与原来的表用where做连接,把需要更新的字段查出来。这样就可以进行批量更新了。
/*----------------------------------------------------------------------------*/
字段:
CASE b.ISDELETE when '1' then '可用' when '0' then '不可用' else '不可用' end ISDELETE,
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
获取系统日期: SYSDATE()
格式化日期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS) 或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)
格式化数字: TO_NUMBER
注: TO_CHAR 把日期或数字转换为字符串 TO_CHAR(number, '格式') 、TO_CHAR(salary, '$99,999.99') 、TO_CHAR(date, '格式')
TO_DATE 把字符串转换为数据库中的日期类型TO_DATE(char, '格式')
TO_NUMBER 将字符串转换为数字 TO_NUMBER(char, '格式')
返回系统日期,输出 25-12月-09
select sysdate from dual;
mi是分钟,输出 2009-12-25 14:23:31
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
mm会显示月份,输出 2009-12-25 14:12:31
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;
输出 09-12-25 14:23:31
select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual
输出 2009-12-25 14:23:31select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual
而如果把上式写作:
select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual
则会报错,因为小时hh是12进制,14为非法输入,不能匹配。
输出 $10,000,00 :
select to_char(1000000,'$99,999,99') from dual;
输出 RMB10,000,00 :
select to_char(1000000,'L99,999,99') from dual;
/*----------------------------------------------------------------------------*/