<field reporter:label="Patron ZIP Code" name="patron_zip" oils_obj:array_position="26" oils_persist:virtual="false" reporter:datatype="text"/>
<field reporter:label="Legacy CAT1 Value" name="stat_cat_1" oils_obj:array_position="27" oils_persist:virtual="false" reporter:datatype="int"/>
<field reporter:label="Legacy CAT2 Value" name="stat_cat_2" oils_obj:array_position="28" oils_persist:virtual="false" reporter:datatype="int"/>
+ <field reporter:label="Dewey Range -- Tens" name="dewey_range_tens" oils_obj:array_position="29" oils_persist:virtual="false" reporter:datatype="text"/>
+ <field reporter:label="Dewey Range -- Hundreds" name="dewey_range_hundreds" oils_obj:array_position="30" oils_persist:virtual="false" reporter:datatype="text"/>
+ <field reporter:label="Dewey Block -- Tens" name="dewey_block_tens" oils_obj:array_position="31" oils_persist:virtual="false" reporter:datatype="text"/>
+ <field reporter:label="Dewey Block -- Hundreds" name="dewey_block_hundreds" oils_obj:array_position="32" oils_persist:virtual="false" reporter:datatype="text"/>
</fields>
<links>
<link field="id" reltype="has_a" key="id" map="" class="circ"/>
cn.id AS call_number,
cn.label AS call_number_label,
call_number_dewey(cn.label) AS dewey,
+ CASE
+ WHEN call_number_dewey(cn.label) ~ E'^[0-9.]+$'
+ THEN
+ btrim(
+ to_char(
+ 10 * floor((call_number_dewey(cn.label)::float) / 10), '000'
+ )
+ )
+ ELSE NULL
+ END AS dewey_block_tens,
+ CASE
+ WHEN call_number_dewey(cn.label) ~ E'^[0-9.]+$'
+ THEN
+ btrim(
+ to_char(
+ 100 * floor((call_number_dewey(cn.label)::float) / 100), '000'
+ )
+ )
+ ELSE NULL
+ END AS dewey_block_hundreds,
+ CASE
+ WHEN call_number_dewey(cn.label) ~ E'^[0-9.]+$'
+ THEN
+ btrim(
+ to_char(
+ 10 * floor((call_number_dewey(cn.label)::float) / 10), '000'
+ )
+ )
+ || '-' ||
+ btrim(
+ to_char(
+ 10 * floor((call_number_dewey(cn.label)::float) / 10) + 9, '000'
+ )
+ )
+ ELSE NULL
+ END AS dewey_range_tens,
+ CASE
+ WHEN call_number_dewey(cn.label) ~ E'^[0-9.]+$'
+ THEN
+ btrim(
+ to_char(
+ 100 * floor((call_number_dewey(cn.label)::float) / 100), '000'
+ )
+ )
+ || '-' ||
+ btrim(
+ to_char(
+ 100 * floor((call_number_dewey(cn.label)::float) / 100) + 99, '000'
+ )
+ )
+ ELSE NULL
+ END AS dewey_range_hundreds,
hl.id AS patron_home_lib,
hl.shortname AS patron_home_lib_shortname,
paddr.county AS patron_county,