oooooooo

本文提供了多个SQL查询示例,包括创建公共同义词、使用条件筛选员工记录、进行字符串操作以及联合查询等,适合数据库管理和开发人员学习与参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 create public synonym customers for hr.customers;
 
SELECT &1, "&2" FROM &3 WHERE last_name = '&4';

select * from hr.employees t where t.last_name='';
SELECT last_name, salary , hire_date FROM EMPLOYEES ORDER BY salary DESC;
 SELECT last_name, salary , hire_date FROM EMPLOYEES ORDER BY 2 DESC;
 select substr('1234567',0,3) from dual;

 
 SELECT e.last_name, d.department_id, d.department_name, l.city
   FROM departments d
   LEFT OUTER JOIN employees e ON d.department_id = e.department_id
   left  JOIN locations l ON d.location_id = l.location_id;
SELECT last_name, department_id, department_name, city
  FROM departments d
  JOIN employees e using(department_id) NATURAL  JOIN locations l ;
  SELECT 'Dear Customer ' || last_name || ',' as "dd" FROM employees;

select to_date('January 10 1999','mm dd yyyy') from dual;
SELECT LOWER(TRIM ('H' FROM 'HelloWorld')) FROM dual;

请帮我整理这个方法,便于我学习理解,形参位置哪里不做解释,方法如下: def find_arr ( im1 , im2 , similar = 1 , density = None , rect = None , debug = False ) : if debug : if 35 - 35: ooOoO0o + i1IIi % I1ii11iIi11i % I11i + oO0o if 17 - 17: i1IIi if 21 - 21: Oo0Ooo if 29 - 29: I11i / II111iiii / ooOoO0o * OOooOOo if 10 - 10: I1Ii111 % IiII * IiII . I11i / Ii1I % OOooOOo if 49 - 49: OoO0O00 / oO0o + O0 * o0oOOo0O0Ooo if 28 - 28: ooOoO0o + i11iIiiIii / I11i % OoOoOO00 % Oo0Ooo - O0 if 54 - 54: i1IIi + II111iiii if 83 - 83: I1ii11iIi11i - I1IiiI + OOooOOo if 5 - 5: Ii1I TS . start ( ) if 46 - 46: IiII ii1iIi1iIiI1i = len ( im2 [ 0 ] ) iiI1iIii1i = len ( im2 ) IiiiI1II1I1 = len ( im1 [ 0 ] ) - ii1iIi1iIiI1i + 1 oo = len ( im1 ) - iiI1iIii1i + 1 if 70 - 70: OoO0O00 * O0 . I11i + I1IiiI . IiII if 14 - 14: iIii1I11I1II1 % iIii1I11I1II1 * i11iIiiIii - OoO0O00 - I11i oOo0O , OOO0O00oO = 0 , 0 if not density : oOo0O , OOO0O00oO = ImgUtils . get_density ( ii1iIi1iIiI1i , iiI1iIii1i ) else : oOo0O , OOO0O00oO = density o00oo0 = int ( iiI1iIii1i >> OOO0O00oO ) oooooOOO000Oo = int ( ii1iIi1iIiI1i >> oOo0O ) if 52 - 52: II111iiii % IiII . OoOoOO00 * iIii1I11I1II1 I111i1II = o00oo0 * oooooOOO000Oo O0OOoO00OO0o = ( 1 - similar ) * I111i1II if debug : print ( "denXX: %i; denYY: %i; total: %i" % ( oooooOOO000Oo , o00oo0 , I111i1II ) ) print ( "maxFailNum %i" % O0OOoO00OO0o ) O0ooooo0OOOO0 = time . time ( ) IiiIi1III = O0ooooo0OOOO0 + 5.0 * 60.0 for o0oo0o0O00OO in range ( oo ) : for Ii1iIIIi1ii in range ( IiiiI1II1I1 ) : if 84 - 84: OOooOOo . iII111i % O0 . OoOoOO00 + oO0o if time . time ( ) <= IiiIi1III : if 31 - 31: iIii1I11I1II1 % I11i % ooOoO0o . Ii1I - I11i ii111iI1iIi1 = 0 ii11i1ii1Ii = True for iIIiiI1 in range ( o00oo0 ) : for I1 in range ( oooooOOO000Oo ) : ii11I1 = I1 << oOo0O oO0oo = iIIiiI1 << OOO0O00oO Ii111iIi1iIi = im2 [ oO0oo ] [ ii11I1 ] IIIII = im1 [ o0oo0o0O00OO + oO0oo ] [ ii11I1 + Ii1iIIIi1ii ] if IIIII != Ii111iIi1iIi : ii111iI1iIi1 += 1 if O0OOoO00OO0o <= ii111iI1iIi1 : ii11i1ii1Ii = False break if not ii11i1ii1Ii : break if ii11i1ii1Ii : if debug : TS . stop ( "find_arr" ) if rect : ooO0oOOooOo0 , iiii111II , i1I1ii11i1Iii , iiiI11 = rect return ( 1 - ii111iI1iIi1 / I111i1II ) , ( Ii1iIIIi1ii + ooO0oOOooOo0 , o0oo0o0O00OO + iiii111II , Ii1iIIIi1ii + ii1iIi1iIiI1i + ooO0oOOooOo0 , o0oo0o0O00OO + iiI1iIii1i + iiii111II ) return ( 1 - ii111iI1iIi1 / I111i1II ) , ( Ii1iIIIi1ii , o0oo0o0O00OO , Ii1iIIIi1ii + ii1iIi1iIiI1i , o0oo0o0O00OO + iiI1iIii1i ) else : return None , None if debug : TS . stop ( "find_arr" ) return None , None if 78 - 78: Ii1I * i1IIi
07-19
#include <bits/stdc++.h> #define ll long long using namespace std; const ll N = 50005; // Adjusted to match the problem's constraints ll n, m; ll tr[4 * N], ls[4 * N], rs[4 * N], lz[4 * N]; void update(ll p, ll l, ll r) { ll mid = (l + r) >> 1; ls[p] = ls[2 * p]; if (ls[p] == mid - l + 1) ls[p] += ls[2 * p + 1]; rs[p] = rs[2 * p + 1]; if (rs[p] == r - mid) rs[p] += rs[2 * p]; tr[p] = max(max(tr[2 * p], tr[2 * p + 1]), rs[2 * p] + ls[2 * p + 1]); } void build(ll p, ll l, ll r) { lz[p] = -1; // Initialize lazy tag to -1 (no action) if (l == r) { tr[p] = ls[p] = rs[p] = 1; return; } ll mid = (l + r) >> 1; build(2 * p, l, mid); build(2 * p + 1, mid + 1, r); update(p, l, r); } void pushdown(ll p, ll l, ll r) { if (lz[p] == -1) return; ll mid = (l + r) >> 1; if (lz[p] == 0) { // Mark as free tr[2 * p] = ls[2 * p] = rs[2 * p] = mid - l + 1; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = r - mid; } else if (lz[p] == 1) { // Mark as occupied tr[2 * p] = ls[2 * p] = rs[2 * p] = 0; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = 0; } lz[2 * p] = lz[2 * p + 1] = lz[p]; lz[p] = -1; } void change(ll p, ll l, ll r, ll x, ll y, ll z) { if (x <= l && r <= y) { if (z == 0) { // Free tr[p] = ls[p] = rs[p] = r - l + 1; } else { // Occupied tr[p] = ls[p] = rs[p] = 0; } lz[p] = z; return; } pushdown(p, l, r); ll mid = (l + r) >> 1; if (y <= mid) change(2 * p, l, mid, x, y, z); else if (x > mid) change(2 * p + 1, mid + 1, r, x, y, z); else { change(2 * p, l, mid, x, mid, z); change(2 * p + 1, mid + 1, r, mid + 1, y, z); } update(p, l, r); } ll searchh(ll p, ll l, ll r, ll x) { if (tr[p] < x) return 0; // No enough free rooms if (r - l + 1 == x) return l; pushdown(p, l, r); ll mid = (l + r) >> 1; if (tr[2 * p] >= x) return searchh(2 * p, l, mid, x); else if (rs[2 * p] + ls[2 * p + 1] >= x) return mid - rs[2 * p] + 1; else return searchh(2 * p + 1, mid + 1, r, x); } int main() { scanf("%lld%lld", &n, &m); build(1, 1, n); while (m--) { ll op, x, y; scanf("%lld", &op); if (op == 1) { scanf("%lld", &x); if (tr[1] < x) { printf("0\n"); } else { ll pos = searchh(1, 1, n, x); printf("%lld\n", pos); change(1, 1, n, pos, pos + x - 1, 1); // Mark as occupied } } else { scanf("%lld%lld", &x, &y); change(1, 1, n, x, x + y - 1, 0); // Mark as free } } return 0; } #include <bits/stdc++.h> #define ll long long using namespace std; const ll N = 1e5; ll n, m; ll tr[4 * N + 5], ls[4 * N + 5], rs[4 * N + 5], lz[4 * N + 5]; void update(ll p, ll l, ll r) { ll mid = (l + r) >> 1; ls[p] = ls[2 * p]; if (ls[p] == mid - l + 1) ls[p] += ls[2 * p + 1]; rs[p] = rs[2 * p + 1]; if (rs[p] == r - mid) rs[p] += rs[2 * p]; tr[p] = max(ls[p], rs[p]); tr[p] = max(tr[p], rs[2 * p] + ls[2 * p + 1]); return; } void build(ll p, ll l, ll r) { if (l == r) { ls[p] = rs[p] = tr[p] = 1; return; } ll mid = (l + r) >> 1; build(2 * p, l, mid), build(2 * p + 1, mid + 1, r); update(p, l, r); return; } void pushdown(ll p, ll l, ll r) { if (lz[p] == 0) return; ll mid = (l + r) >> 1; if (lz[p] - 1 == 0) { tr[2 * p] = ls[2 * p] = rs[2 * p] = mid - l + 1; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = r - mid; } else if (lz[p] - 1 == 1) { tr[2 * p] = ls[2 * p] = rs[2 * p] = 0; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = 0; } lz[2 * p] = lz[2 * p + 1] = lz[p]; lz[p] = 0; return; } void change(ll p, ll l, ll r, ll x, ll y, ll z) { if (x <= l && r <= y) { if (z == 0) { ls[p] = rs[p] = tr[p] = r - l + 1; } else { ls[p] = rs[p] = tr[p] = 0; } lz[p] = z + 1; return; } pushdown(p, l, r); ll mid = (l + r) >> 1; if (y <= mid) change(2 * p, l, mid, x, y, z); else if (x >= mid + 1) change(2 * p + 1, mid + 1, r, x, y, z); else { change(2 * p, l, mid, x, mid, z); change(2 * p + 1, mid + 1, r, mid + 1, y, z); } update(p, l, r); return; } ll searchh(ll p, ll l, ll r, ll x) { ll mid = (l + r) >> 1; // cout<<p<<" "<<l<<" "<<r<<endl; if (r - l + 1 == x) return l; pushdown(p, l, r); if (tr[2 * p] >= x) return searchh(2 * p, l, mid, x); else if (rs[2 * p] + ls[2 * p + 1] >= x) return mid - rs[2 * p] + 1; else return searchh(2 * p + 1, mid + 1, r, x); } // void work(ll p,ll l,ll r){ // cout<<l<<" "<<r<<" "<<tr[p]<<" "<<ls[p]<<" "<<rs[p]<<endl; // if(l==r) return; // ll mid=(l+r)>>1; // pushdown(p,l,r); // work(2*p,l,mid),work(2*p+1,mid+1,r); // return; //} int main() { scanf("%lld%lld", &n, &m); build(1, 1, n); // work(1,1,n); while (m--) { ll op, x, y; scanf("%lld%lld", &op, &x); if (op == 1) { if (tr[1] < x) printf("0\n"); else { ll pos = searchh(1, 1, n, x); printf("%lld\n", pos); change(1, 1, n, pos, pos + x - 1, 1); } } else { scanf("%lld", &y); change(1, 1, n, x, x + y - 1, 0); // cout<<x<<"oooooooo"<<x+y-1<<endl; } // cout<<endl; // work(1,1,n); // cout<<endl; } return 0; } /* 10 1 1 1 */ 这两份代码功能上有什么区别
08-06
``` #include <bits/stdc++.h> #define ll long long using namespace std; const ll N = 50005; // Adjusted to match the problem's constraints ll n, m; ll tr[4 * N], ls[4 * N], rs[4 * N], lz[4 * N]; void update(ll p, ll l, ll r) { ll mid = (l + r) >> 1; ls[p] = ls[2 * p]; if (ls[p] == mid - l + 1) ls[p] += ls[2 * p + 1]; rs[p] = rs[2 * p + 1]; if (rs[p] == r - mid) rs[p] += rs[2 * p]; tr[p] = max(max(tr[2 * p], tr[2 * p + 1]), rs[2 * p] + ls[2 * p + 1]); } void build(ll p, ll l, ll r) { lz[p] = -1; // Initialize lazy tag to -1 (no action) if (l == r) { tr[p] = ls[p] = rs[p] = 1; return; } ll mid = (l + r) >> 1; build(2 * p, l, mid); build(2 * p + 1, mid + 1, r); update(p, l, r); } void pushdown(ll p, ll l, ll r) { if (lz[p] == -1) return; ll mid = (l + r) >> 1; if (lz[p] == 0) { // Mark as free tr[2 * p] = ls[2 * p] = rs[2 * p] = mid - l + 1; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = r - mid; } else if (lz[p] == 1) { // Mark as occupied tr[2 * p] = ls[2 * p] = rs[2 * p] = 0; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = 0; } lz[2 * p] = lz[2 * p + 1] = lz[p]; lz[p] = -1; } void change(ll p, ll l, ll r, ll x, ll y, ll z) { if (x <= l && r <= y) { if (z == 0) { // Free tr[p] = ls[p] = rs[p] = r - l + 1; } else { // Occupied tr[p] = ls[p] = rs[p] = 0; } lz[p] = z; return; } pushdown(p, l, r); ll mid = (l + r) >> 1; if (y <= mid) change(2 * p, l, mid, x, y, z); else if (x > mid) change(2 * p + 1, mid + 1, r, x, y, z); else { change(2 * p, l, mid, x, mid, z); change(2 * p + 1, mid + 1, r, mid + 1, y, z); } update(p, l, r); } ll searchh(ll p, ll l, ll r, ll x) { if (tr[p] < x) return 0; // No enough free rooms if (r - l + 1 == x) return l; pushdown(p, l, r); ll mid = (l + r) >> 1; if (tr[2 * p] >= x) return searchh(2 * p, l, mid, x); else if (rs[2 * p] + ls[2 * p + 1] >= x) return mid - rs[2 * p] + 1; else return searchh(2 * p + 1, mid + 1, r, x); } int main() { scanf("%lld%lld", &n, &m); build(1, 1, n); while (m--) { ll op, x, y; scanf("%lld", &op); if (op == 1) { scanf("%lld", &x); if (tr[1] < x) { printf("0\n"); } else { ll pos = searchh(1, 1, n, x); printf("%lld\n", pos); change(1, 1, n, pos, pos + x - 1, 1); // Mark as occupied } } else { scanf("%lld%lld", &x, &y); change(1, 1, n, x, x + y - 1, 0); // Mark as free } } return 0; } ``` ``` #include <bits/stdc++.h> #define ll long long using namespace std; const ll N = 1e5; ll n, m; ll tr[4 * N + 5], ls[4 * N + 5], rs[4 * N + 5], lz[4 * N + 5]; void update(ll p, ll l, ll r) { ll mid = (l + r) >> 1; ls[p] = ls[2 * p]; if (ls[p] == mid - l + 1) ls[p] += ls[2 * p + 1]; rs[p] = rs[2 * p + 1]; if (rs[p] == r - mid) rs[p] += rs[2 * p]; tr[p] = max(ls[p], rs[p]); tr[p] = max(tr[p], rs[2 * p] + ls[2 * p + 1]); return; } void build(ll p, ll l, ll r) { if (l == r) { ls[p] = rs[p] = tr[p] = 1; return; } ll mid = (l + r) >> 1; build(2 * p, l, mid), build(2 * p + 1, mid + 1, r); update(p, l, r); return; } void pushdown(ll p, ll l, ll r) { if (lz[p] == 0) return; ll mid = (l + r) >> 1; if (lz[p] - 1 == 0) { tr[2 * p] = ls[2 * p] = rs[2 * p] = mid - l + 1; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = r - mid; } else if (lz[p] - 1 == 1) { tr[2 * p] = ls[2 * p] = rs[2 * p] = 0; tr[2 * p + 1] = ls[2 * p + 1] = rs[2 * p + 1] = 0; } lz[2 * p] = lz[2 * p + 1] = lz[p]; lz[p] = 0; return; } void change(ll p, ll l, ll r, ll x, ll y, ll z) { if (x <= l && r <= y) { if (z == 0) { ls[p] = rs[p] = tr[p] = r - l + 1; } else { ls[p] = rs[p] = tr[p] = 0; } lz[p] = z + 1; return; } pushdown(p, l, r); ll mid = (l + r) >> 1; if (y <= mid) change(2 * p, l, mid, x, y, z); else if (x >= mid + 1) change(2 * p + 1, mid + 1, r, x, y, z); else { change(2 * p, l, mid, x, mid, z); change(2 * p + 1, mid + 1, r, mid + 1, y, z); } update(p, l, r); return; } ll searchh(ll p, ll l, ll r, ll x) { ll mid = (l + r) >> 1; // cout<<p<<" "<<l<<" "<<r<<endl; if (r - l + 1 == x) return l; pushdown(p, l, r); if (tr[2 * p] >= x) return searchh(2 * p, l, mid, x); else if (rs[2 * p] + ls[2 * p + 1] >= x) return mid - rs[2 * p] + 1; else return searchh(2 * p + 1, mid + 1, r, x); } // void work(ll p,ll l,ll r){ // cout<<l<<" "<<r<<" "<<tr[p]<<" "<<ls[p]<<" "<<rs[p]<<endl; // if(l==r) return; // ll mid=(l+r)>>1; // pushdown(p,l,r); // work(2*p,l,mid),work(2*p+1,mid+1,r); // return; //} int main() { scanf("%lld%lld", &n, &m); build(1, 1, n); // work(1,1,n); while (m--) { ll op, x, y; scanf("%lld%lld", &op, &x); if (op == 1) { if (tr[1] < x) printf("0\n"); else { ll pos = searchh(1, 1, n, x); printf("%lld\n", pos); change(1, 1, n, pos, pos + x - 1, 1); } } else { scanf("%lld", &y); change(1, 1, n, x, x + y - 1, 0); // cout<<x<<"oooooooo"<<x+y-1<<endl; } // cout<<endl; // work(1,1,n); // cout<<endl; } return 0; } /* 10 1 1 1 */ ``` 第一份代码100分,第二份18分WA
最新发布
08-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值