Re: SQL syntax

2018-03-02 Thread Rob Sargent


> On Mar 2, 2018, at 5:41 PM, Adrian Klaver  wrote:
> 
>> On 03/02/2018 04:36 PM, Dale Seaburg wrote:
>> My mind is drawing a blank.  Not sure where to go to find the answer. Here 
>> is the statement in C#:
>> sSQL = "SELECT \"Image_Filename\" FROM \"Instruments\" WHERE ";
>> To finish off the WHERE clause, I need to look at the first 2 letters, like 
>> "D:".  My question is how do I specify in the WHERE clause, to look at the 
>> first 2 characters in the Image_Filename column?  What is the correct SQL 
>> syntax for looking at just a portion of a column?
> 
> SELECT "Image_Filename" FROM "Instruments" WHERE "ImageFilename" LIKE 'D:%';
> 
> If you want case insensitive then ILIKE. For more info:
> https://www.postgresql.org/docs/10/static/functions-matching.html#FUNCTIONS-LIKE
> 
>> I feel so dumb...  This can't be that hard, but I am exhausted and running 
>> out of ideas.  I need someone to give me a boost!  ;-)
>> Thanks,
>> Dale.
> 
> 
> -- 
> Adrian Klaver
> adrian.kla...@aklaver.com
> 
Use the tilda, Luke. 
filename ~ ‘^D:’


Re: SQL syntax

2018-03-02 Thread Tom Lane
Adrian Klaver  writes:
> On 03/02/2018 04:36 PM, Dale Seaburg wrote:
>> To finish off the WHERE clause, I need to look at the first 2 letters, 
>> like "D:".  My question is how do I specify in the WHERE clause, to look 
>> at the first 2 characters in the Image_Filename column?  What is the 
>> correct SQL syntax for looking at just a portion of a column?

> SELECT "Image_Filename" FROM "Instruments" WHERE "ImageFilename" LIKE 'D:%';

Another way is to use the substring() function:

SELECT "Image_Filename" FROM "Instruments"
  WHERE substring("ImageFilename", 1, 2) = 'D:';

or if you want to use the SQL committee's COBOLish syntax:

SELECT "Image_Filename" FROM "Instruments"
  WHERE substring("ImageFilename" FROM 1 FOR 2) = 'D:';

Depending on what you're doing, either the pattern-match way or the
substring way might be more convenient.  The performance implications
are different too, though that won't matter to you unless you're dealing
with so much data that you want to create a specialized index to make
queries of this form faster.

regards, tom lane



Re: SQL syntax

2018-03-02 Thread Ken Tanzer
On Fri, Mar 2, 2018 at 4:41 PM, Adrian Klaver 
wrote:

> On 03/02/2018 04:36 PM, Dale Seaburg wrote:
>
>> My mind is drawing a blank.  Not sure where to go to find the answer.
>> Here is the statement in C#:
>>
>> sSQL = "SELECT \"Image_Filename\" FROM \"Instruments\" WHERE ";
>>
>> To finish off the WHERE clause, I need to look at the first 2 letters,
>> like "D:".  My question is how do I specify in the WHERE clause, to look at
>> the first 2 characters in the Image_Filename column?  What is the correct
>> SQL syntax for looking at just a portion of a column?
>>
>
> SELECT "Image_Filename" FROM "Instruments" WHERE "ImageFilename" LIKE
> 'D:%';
>
> If you want case insensitive then ILIKE. For more info:
> https://www.postgresql.org/docs/10/static/functions-matching
> .html#FUNCTIONS-LIKE
>
>
It's not clear what kind of test you're trying to apply to those first two
characters.  If you want to pull them out to use in an expression (e.g., if
you want to see if they are greater or less than something else), you can
use SUBSTRING or LEFT.

SELECT SUBSTRING('abc' FROM 1 FOR 2),LEFT('abc',2),LEFT('abc',2)<'aa'
AS is_less,LEFT('abc',2)>'aa' AS is_more;

 substring | left | is_less | is_more
---+--+-+-
 ab| ab   | f   | t
(1 row)

Cheers,
Ken



> --
>
AGENCY Software
A Free Software data system
By and for non-profits
*http://agency-software.org/ <http://agency-software.org/>*
*https://demo.agency-software.org/client
<https://demo.agency-software.org/client>*
ken.tan...@agency-software.org
(253) 245-3801

Subscribe to the mailing list
 to
learn more about AGENCY or
follow the discussion.


Re: SQL syntax

2018-03-02 Thread Adrian Klaver

On 03/02/2018 04:36 PM, Dale Seaburg wrote:
My mind is drawing a blank.  Not sure where to go to find the answer. 
Here is the statement in C#:


sSQL = "SELECT \"Image_Filename\" FROM \"Instruments\" WHERE ";

To finish off the WHERE clause, I need to look at the first 2 letters, 
like "D:".  My question is how do I specify in the WHERE clause, to look 
at the first 2 characters in the Image_Filename column?  What is the 
correct SQL syntax for looking at just a portion of a column?


SELECT "Image_Filename" FROM "Instruments" WHERE "ImageFilename" LIKE 'D:%';

If you want case insensitive then ILIKE. For more info:
https://www.postgresql.org/docs/10/static/functions-matching.html#FUNCTIONS-LIKE



I feel so dumb...  This can't be that hard, but I am exhausted and 
running out of ideas.  I need someone to give me a boost!  ;-)


Thanks,
Dale.





--
Adrian Klaver
adrian.kla...@aklaver.com



SQL syntax

2018-03-02 Thread Dale Seaburg
My mind is drawing a blank.  Not sure where to go to find the answer.  
Here is the statement in C#:


sSQL = "SELECT \"Image_Filename\" FROM \"Instruments\" WHERE ";

To finish off the WHERE clause, I need to look at the first 2 letters, 
like "D:".  My question is how do I specify in the WHERE clause, to look 
at the first 2 characters in the Image_Filename column?  What is the 
correct SQL syntax for looking at just a portion of a column?


I feel so dumb...  This can't be that hard, but I am exhausted and 
running out of ideas.  I need someone to give me a boost!  ;-)


Thanks,
Dale.