Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.60 KB | None | 0 0
  1. with a as (
  2. select (regexp_split_to_array(inn, '\s*'))::int[] a, length(inn) l
  3. )
  4. , k as (
  5. select
  6. row_number() over () rn
  7. ,p::int + 1 k2
  8. ,(lead(p,1) over ())::int + 1 k1
  9. ,(lead(p,2) over ())::int + 1 k0
  10. from regexp_split_to_table('26139248357',E'\\s*') p
  11. )
  12. , m as (
  13. select
  14. k.*,
  15. a.a[k.rn] v
  16. from k, a
  17. )
  18. , v as (
  19. select
  20. mod(mod(sum(k2*v), 11) ,10) s2,
  21. mod(mod(sum(k1*v), 11) ,10) s1,
  22. mod(mod(sum(k0*v), 11) ,10) s0
  23. from m
  24. )
  25. select
  26. case
  27. when a.l = 10 then v.s0 = a.a[10]
  28. when a.l = 12 then v.s1 = a.a[11] and v.s2 = a.a[12]
  29. else false
  30. end r
  31. from v, a
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement