Sponsored Content
Top Forums Programming [ask]SQL command act like sort and grep Post 302716629 by gary_w on Tuesday 16th of October 2012 04:56:55 PM
Old 10-16-2012
Have a look at this. Using union merges the queries together and sorts them. Logically this is not what you asked for though. Your example was getting a row on either side of the target value. This example gets the next highest and next lowest value relative to the target value. By definition the order of rows do not matter in a relational database table, so one would not really select a row on either side of a value in practice. Hopefully someone with better SQL skills can make this more efficient.

Code:
SQL> create table test (
  2  idx number);

Table created.

SQL> insert into test values (234234);

1 row created.

SQL> insert into test values (54654);

1 row created.

SQL> insert into test values (123134);

1 row created.

SQL> insert into test values (467456);

1 row created.

SQL> insert into test values (24234234);

1 row created.

SQL> insert into test values (7867867);

1 row created.

SQL> insert into test values (23424);

1 row created.

SQL> insert into test values (568567);

1 row created.

SQL> ed
Wrote file afiedt.buf

  1  select idx
  2  from test
  3  where idx=467456
  4  union
  5  select max(idx)
  6  from test
  7  where idx < 467456
  8  union
  9  select min(idx)
 10  from test
 11* where idx > 467456
SQL> /

       IDX
----------
    234234
    467456
    568567

SQL>

These 2 Users Gave Thanks to gary_w For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Sort/Grep Question

Hello all, I have a test file that has the format: ..... O 3.694950 -.895050 1.480000 O 5.485050 .895050 1.480000 Ti -4.590000 4.590000 2.960000 Ti -2.295000 ... (5 Replies)
Discussion started by: aarondesk
5 Replies

2. UNIX for Dummies Questions & Answers

Basic awk question...getting awk to act on $1 of the command itself

I have a script problem that I am not able to solve due my very limited understanding of unix/awk. This is the contents of test.sh awk '{print $1}' From the prompt if I enter: ./test.sh Hello World I would expect to see "Hello" but all I get is a blank line. Only then if I enter "Hello... (2 Replies)
Discussion started by: JasonHamm
2 Replies

3. Shell Programming and Scripting

how to grep sort userids

hello folks i have a file that have data like /test/aa/123 /test/aa/xyz /test/bb/xyz /test/bb/123 in above lines i just wants to grep "aa" and "bb". Thanks, Bash (4 Replies)
Discussion started by: learnbash
4 Replies

4. Shell Programming and Scripting

How to Sort Floating Numbers Using the Sort Command?

Hi to all. I'm trying to sort this with the Unix command sort. user1:12345678:3.5:2.5:8:1:2:3 user2:12345679:4.5:3.5:8:1:3:2 user3:12345687:5.5:2.5:6:1:3:2 user4:12345670:5.5:2.5:5:3:2:1 user5:12345671:2.5:5.5:7:2:3:1 I need to get this: user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 Replies

5. Shell Programming and Scripting

How to grep the where clause of a SQL?

Hi UNIX Gurus, I want to use extract the where clause of a SQL present in a file. Please suggest me how can I do it. Select * from emp where emp_id>10; cat <file_name> | grep -i "where" returns whole SQL. how can I extract only "where emp_id>10;" Thanks in advance (4 Replies)
Discussion started by: ustechie
4 Replies

6. Shell Programming and Scripting

Is it Possible to sort a list of hexadecimal numbers using "sort" command?

Hello Everybody :) !!!. i have question in mind, is it possible to sort a list of hexadecimal numbers using "sort" command? (9 Replies)
Discussion started by: Kesavan
9 Replies

7. Shell Programming and Scripting

grep from 3 lines and sort

Pseudo name=hdiskpower54 Symmetrix ID=000190101757 Logical device ID=0601 state=alive; policy=SymmOpt; priority=0; queued-IOs=0 ============================================================================== ---------------- Host --------------- - Stor - -- I/O Path - -- Stats --- ### HW... (7 Replies)
Discussion started by: Daniel Gate
7 Replies

8. Homework & Coursework Questions

Grep and Sort

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: 1. Print the number of people that are in the /etc/passwd file with the name of George 2. Sort by name and... (8 Replies)
Discussion started by: Jagst3r21
8 Replies

9. Shell Programming and Scripting

Storing multiple sql queries output into variable by running sql command only once

Hi All, I want to run multiple sql queries and store the data in variable but i want to use sql command only once. Is there a way without running sql command twice and storing.Please advise. Eg : Select 'Query 1 output' from dual; Select 'Query 2 output' from dual; I want to... (3 Replies)
Discussion started by: Rokkesh
3 Replies

10. UNIX for Beginners Questions & Answers

Wget, grep, sort, sed in 1 command/script

Hi, I need to join these statements for efficiency, and without having to make a new directory for each batch. I'm annotating commands below. wget -q -r -l1 URL ^^ can't use -O - here and pipe | to grep because of -r grep -hrio "\b\+@\+\.\{2,4\}\+\b" * > first.txt ^^ Need to grep the output... (14 Replies)
Discussion started by: p1ne
14 Replies
Alzabo::SQLMaker(3pm)					User Contributed Perl Documentation				     Alzabo::SQLMaker(3pm)

NAME
Alzabo::SQLMaker - Alzabo base class for RDBMS drivers SYNOPSIS
use Alzabo::SQLMaker::MySQL; my $sql = Alzabo::SQLMaker::MySQL->new( driver => $driver_object ); # or better yet my $sql = $runtime_schema->sqlmaker; DESCRIPTION
This is the base class for all Alzabo::SQLMaker modules. To instantiate a driver call this class's "new" method. See "SUBCLASSING Alz- abo::SQLMaker" for information on how to make a driver for the RDBMS of your choice. METHODS
available Returns A list of names representing the available "Alzabo::SQLMaker" subclasses. Any one of these names would be appropriate as a parame- ter for the "Alzabo::SQLMaker->load()" method. load Load the specified subclass. This takes one parameter, the name of the RDBMS being used. Throws: "Alzabo::Exception::Eval" new This takes two parameters: * driver The driver object being used by the schema. * quote_identifiers A boolean value indicating whether or not identifiers should be quoted. This defaults to false. GENERATING SQL
This class can be used to generate SQL by calling methods that are the same as those used in SQL ("select()", "update()", etc.) in sequence, with the appropriate parameters. There are four entry point methods, "select()", "insert()", "update()", and "delete()". Attempting to call any other method without first calling one of these is an error. Entry Points These methods are called as class methods and return a new object. select ("Alzabo::Table" and/or "Alzabo::Column" objects) This begins a select. The columns to be selected are the column(s) passed in, and/or the columns of the table(s) passed in as arguments. Followed by: "from()" "** function" insert Followed by: "into()" update ("Alzabo::Table") Followed by: "set()" delete Followed by: "from()" Other Methods All of these methods return the object itself, making it possible to chain together method calls such as: Alzabo::SQLMaker->select($column)->from($table)->where($other_column, '>', 2); from ("Alzabo::Table" object, ...) The table(s) from which we are selecting data. Follows: "select()" "** function" "delete()" Followed by: "where()""> "order_by()" Throws: "Alzabo::Exception::SQL" where <see below> The first parameter to where must be an "Alzabo::Column" object or SQL function. The second is a comparison operator of some sort, given as a string. The third argument can be an "Alzabo::Column" object, a value (a number or string), or an "Alzabo::SQLMaker" object. The latter is treated as a subselect. Values given as parameters will be properly quoted and escaped. Some comparison operators allow additional parameters. The "BETWEEN" comparison operator requires a fourth argument. This must be either an "Alzabo::Column" object or a value. The "IN" and <NOT IN> operators allow any number of additional parameters, which may be "Alzabo::Column" objects, values, or "Alzabo::SQL- Maker" objects. Follows: "from()" Followed by: "and()" "or()" "order_by()" Throws: "Alzabo::Exception::SQL" and (same as "where") or (same as "where") These methods take the same parameters as the "where()""> method. Follows: "where()""> "and()" "or()" Followed by: "and()" "or()" "order_by()" Throws: "Alzabo::Exception::SQL" order_by ("Alzabo::Column" objects) Adds an "ORDER BY" clause to your SQL. Follows: "from()" "where()""> "and()" "or()" Followed by: "limit()" Throws: "Alzabo::Exception::SQL" limit ($max, optional $offset) Specifies a limit on the number of rows to be returned. The offset parameter is optional. Follows: "from()" "where()""> "and()" "or()" "order_by()" "Alzabo::Exception::SQL" into ("Alzabo::Table" object, optional "Alzabo::Column" objects) Used to specify what table an insert is into. If column objects are given then it is expected that values will only be given for that object. Otherwise, it assumed that all columns will be specified in the "values()" method. Follows: "insert()" Followed by: "values()" Throws: "Alzabo::Exception::SQL" values ("Alzabo::Column" object => $value, ...) This method expects to recive an structured like a hash where the keys are "Alzabo::Column" objects and the values are the value to be inserted into that column. Follows: "into()" Throws: "Alzabo::Exception::SQL" set ("Alzabo::Column" object => $value, ...) This method'a parameter are exactly like those given to the "values" method. Follows: "update()" Followed by: "where()""> Throws: "Alzabo::Exception::SQL" RETRIEVING SQL FROM THE OBJECT
sql This method can be called at any time, though obviously it will not return valid SQL unless called at a natural end point. In the future, an exception may be thrown if called when the SQL is not in a valid state. Returns the SQL generated so far as a string. bind Returns an array reference containing the parameters to be bound to the SQL statement. SUBCLASSING Alzabo::SQLMaker To create a subclass of "Alzabo::SQLMaker" for your particular RDBMS requires only that the virtual methods listed below be implemented. In addition, you may choose to override any of the other methods described in this documentation. For example, the MySQL subclass override the "_subselect()" method because MySQL cannot support sub-selects. Subclasses are also expected to offer for export various sets of functions matching SQL functions. See the "Alzabo::SQLMaker::MySQL" sub- class implementation for details. VIRTUAL METHODS
The following methods must be implemented by the subclass: limit See above for the definition of this method. get_limit This method may return "undef" even if the "limit()" method was called. Some RDBMS's have special SQL syntax for "LIMIT" clauses. For those that don't support this, the "Alzabo::Driver" module takes a "limit" parameter. The return value of this method can be passed in as that parameter. If the RDBMS does not support "LIMIT" clauses, the return value is an array reference containing two values, the maximum number of rows allowed and the row offset (the first row that should be used). If the RDBMS does support "LIMIT" clauses, then the return value is "undef". sqlmaker_id Returns the subclass's name. This should be something that can be passed to "Alzabo::SQLMaker->load()" as a parameter. AUTHOR
Dave Rolsky, <dave@urth.org> perl v5.8.8 2007-12-23 Alzabo::SQLMaker(3pm)
All times are GMT -4. The time now is 10:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy