my $rank = $relevance;
if (lc($sort) eq 'pubdate') {
$rank = <<" RANK";
- (
- SELECT FIRST(COALESCE(SUBSTRING(frp.value FROM '\\\\d+'),'9999')::INT)
+ ( FIRST ((
+ SELECT COALESCE(SUBSTRING(frp.value FROM '\\\\d+'),'9999')::INT
FROM $metabib_full_rec frp
WHERE frp.record = mr.master_record
AND frp.tag = '260'
AND frp.subfield = 'c'
- )
+ LIMIT 1
+ )) )
RANK
} elsif (lc($sort) eq 'title') {
$rank = <<" RANK";
- (
- SELECT FIRST(COALESCE(LTRIM(SUBSTR( frt.value, frt.ind2::text::int )),'zzzzzzzz'))
+ ( FIRST ((
+ SELECT COALESCE(LTRIM(SUBSTR( frt.value, frt.ind2::text::int )),'zzzzzzzz')
FROM $metabib_full_rec frt
WHERE frt.record = mr.master_record
AND frt.tag = '245'
AND frt.subfield = 'a'
- )
+ LIMIT 1
+ )) )
RANK
} elsif (lc($sort) eq 'author') {
$rank = <<" RANK";
WHERE fra.record = mr.master_record
AND fra.tag LIKE '1%'
AND fra.subfield = 'a'
- ORDER BY fra.tag::text::int
+ ORDER BY fra.tag::text::int
LIMIT 1
)) )
RANK
my $rank = $relevance;
if (lc($sort) eq 'pubdate') {
$rank = <<" RANK";
- (
- SELECT FIRST(COALESCE(SUBSTRING(frp.value FROM '\\\\d+'),'9999')::INT)
+ ( FIRST ((
+ SELECT COALESCE(SUBSTRING(frp.value FROM '\\\\d+'),'9999')::INT
FROM $metabib_full_rec frp
WHERE frp.record = mr.master_record
AND frp.tag = '260'
AND frp.subfield = 'c'
- )
+ LIMIT 1
+ )) )
RANK
} elsif (lc($sort) eq 'title') {
$rank = <<" RANK";
- (
- SELECT FIRST(COALESCE(LTRIM(SUBSTR( frt.value, frt.ind2::text::int )),'zzzzzzzz'))
+ ( FIRST ((
+ SELECT COALESCE(LTRIM(SUBSTR( frt.value, frt.ind2::text::int )),'zzzzzzzz')
FROM $metabib_full_rec frt
WHERE frt.record = mr.master_record
AND frt.tag = '245'
AND frt.subfield = 'a'
+ LIMIT 1
)) )
RANK
} elsif (lc($sort) eq 'author') {
WHERE fra.record = mr.master_record
AND fra.tag LIKE '1%'
AND fra.subfield = 'a'
- ORDER BY fra.tag::text::int
+ ORDER BY fra.tag::text::int
LIMIT 1
)) )
RANK