3,499
社区成员
发帖
与我相关
我的任务
分享SQL> select ascii('0601') from dual;
ASCII('0601')
-------------
48
SQL> select ascii('06操你妈逼') from dual;
ASCII('06操你妈逼')
-------------------
48SQL> select (CASE WHEN '0611'>'0601' THEN 1 ELSE 0 END) AS false_true FROM dual;
FALSE_TRUE
----------
1
SQL> select (CASE WHEN '0601'>'0611' THEN 1 ELSE 0 END) AS false_true FROM dual;
FALSE_TRUE
----------
0
-- ascii 0611 0601 的ascii是一样的
-- 比较两个字符串的ASCII码,并不是将两个字符串的所有字符去比较,而只是比较这两个字符串中的首字符!
-- 你想怎么比较?
-- 年不用管,只比较月、日,对吧?
-- 方法有二:
-- 其一:两个数据量,分别用四个变量(月:两个变量;日:两个变量)
-- 即:A数据的月、日,分别用 A_month, A_day;
B数据的月、日,分别用 B_month, B_day;
-- if (A_month < B_month or (A_month = B_month and A_day < B_day ) )then A < B
else if A_month = B_month and A_day = B_day then A = B
else A > B
-- 其二:直接获取日期变量的月、日 相比较:
select to_char(A, 'mmdd'), to_char(B,'mmdd') into v_A, v_B from ......
if v_A < v_B ...
elsif v_A = v_B ...
else ...
-- 当然是用方法二简单啦! 直接比较!