Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

It is possible that a given record will not have any LC subject headings. In the screenshot below we see a typical example of subject headings in a record. The first 2 lines in the screenshot show two parts of a single subject heading: 650  0  $a Cultural property $x Protection (International law). The number 1 in the ord column tells us that these two subfields are the elements that make up the first subject heading in the record. The second subject heading has 3 separate elements, divided into three subfields:         650  0 ‡a Cultural property ‡x Protection ‡z Europe .
9:40
And and so on. There are 4 LC subject headings in this record, and numerous other subject terms as well.  To find the first subject term in a record, I recommend using that number 1 in the ord field.

...

For example, to pull the first LOC subject heading from a bibliographic record using its instance hrid, you would use:

SELECT DISTINCT
    SM.instance_hrid,
    SM.field,
    SM.ind2,
    SM.ord,
    SM.sf,
    SM."content"
FROM
    public.srs_marctab SM
 WHERE SM.instance_hrid = '15309598'
 AND SM.field LIKE '6%%'
 AND SM.ord='1'
 AND SM.ind2='0'

;


Which results in:


Further, if you want to display the subject heading as it appears in the bibliographic record, you may use a STRING_AGG FUNCTION to format the content rows as a subject heading string. Here is an example using instance HRIDs between 6403921 and 6404000:

WITH lc as

(SELECT DISTINCT
      sm.instance_hrid,
      sm.field,
        sm.content

FROM srs_marctab sm

WHERE sm.instance_hrid between '6403921' and '6404000'
      AND sm.field like '6%%'
      AND sm.sf in ('a','x','y','z')
      AND sm.ind2 = '0'
      AND sm.ord = '1'
)

SELECT
      lc.instance_hrid,
      lc.field,
        string_agg (lc.content, ' -- ') as lc_subject

FROM lc

GROUP BY
        lc.instance_hrid,
      lc.field
;


And the results would be:


Image RemovedImage Added