Selecting rows with specific values in a column [duplicate] - sql

This question already has answers here:
Select from any of multiple values from a Postgres field
(3 answers)
Closed 5 years ago.
I'm new to SQL. I've got my table with 3 columns. Given a list of values (lets say ints for example 1, 4, 3) I want to select rows in which the second columns value equals something that the given list contains.
Is it possible to pass a list as an argument in SQL?
select * from TABLE1 where ...
How do i finish this statement for it to work as i explained?
I'm using PostgreSQL 9.4

Try the following query:
SELECT *
FROM TABLE1
WHERE col2 IN (1, 4, 3);
Most flavors of SQL support the IN clause, which allows comparing a column against a sequence of values. In the query above, we compare col2 against a collection of numbers, but we can equally compare against string literals, etc.

Related

Can't execute select query on some columns of table in oracle [duplicate]

This question already has answers here:
View based on apex collection
(2 answers)
Can't use column names in select query on sqlfiddle (oracle)
(3 answers)
Closed 2 months ago.
I have a table with 43 columns. When I execute "Select * from My_Table", it works; And shows data of all columns.
But if I perform "Select" query on some of the columns ( In my case, the first 29 columns of the table)
I receive an error that says "INVALID IDENTIFIER".
Other columns work just fine.
I can't perform "group by" or "order by" using these 29 columns either.
What do you think is the problem?
Any help is appreciated.
Some screenshots are attached for better understanding.
Looking at screenshots, it seems that you created table using mixed letter case and enclosed column names into double quotes. If that's so, well - that's usually bad idea in Oracle as you'll always have to identify columns that way: match letter case and use double quotes.
Therefore, that would be e.g.
select "Order_Id", "Customer_name", "DATA_DATE"
from your_table
Looks awful ... will you remember that customer name doesn't have initial capital letters, but e.g. trace number does?
For you own sake, if possible, drop that table and create a new one as
create table your_table
(order_id number,
customer_name varchar2(20),
trace_number number,
...
);
and reference such a table and columns using any letter case (as it'll work because - by default - Oracle stores names in uppercase (into data dictionary), but lets you reference them any way you want):
select order_id, CUSTOMER_name, TRacE_NumBER ...

How can I search a string in more than ten columns in SQL [duplicate]

This question already has answers here:
Checking if a string is found in one of multiple columns in mySQL
(6 answers)
Closed 1 year ago.
I want search a string in all 10 columns in a SQL table. How can I do it in SQL?
For example :
I have to search “Computer” word in all ten columns or all the columns in a single table .
You should use "OR" operator.
For Example:
SELECT * FROM Table
WHERE (col1 LIKE '%searchstring%') OR (col2 LIKE '%searchstring%') OR (col3 LIKE '%searchstring%')

SQL require table name in values section [duplicate]

This question already has answers here:
postgres column "X" does not exist
(1 answer)
Postgres error updating column data
(2 answers)
PostgreSQL "column "foo" does not exist" where foo is the value
(1 answer)
Closed 2 years ago.
I am trying to store the data in table by using insert query (I am using PostreSQL), but there is it.
ERROR: column "Fleet" does not exist
LINE 1: insert into appuser values("Fleet")
Postresql require column name in values section, but what is that? Why? (There is only test, my 'appuser' table has 2 columns, one of it is primary key auto-generated, so do not get confuse)
Your table has two columns and you are providing a value for only one, so you need to tell the database which one it is. Also, literal strings must be surrounded with single quotes (double quotes stand for column identifiers).
Assuming that the target column is mycol, that would be:
insert into appuser (mycol) values('Fleet')

Using COALESCE directly within a SELECT to return comma separated values from another table [duplicate]

This question already has answers here:
How can I pull a list of ID's from a SQL table as a comma-separated values string?
(7 answers)
Closed 7 years ago.
I am trying to retrieve a list of comma separated product categories for a product.
Here is an idea of what I am trying to do:
SELECT *, (
SELECT CategoryName
FROM ProductCategories pc
WHERE p.ProductId=pc.ProductId) as ProductCategories
FROM Products p
I need the product categories to be in a comma separated list. Is there a way to do it using COALESCE?
No, you can't use COALESCE to do that. COALESCE just returns the first non null argument that you pass it.
You want How to create a SQL Server function to "join" multiple rows from a subquery into a single delimited field?

how to concatenate more than two columns in plsql developer? [duplicate]

This question already has answers here:
Oracle SQL, concatenate multiple columns + add text
(6 answers)
Closed 7 years ago.
when I run the below query
select concat(column1,column2,column3) as concatcolumn from table
I get an error "ORA-00909:INVALID NUMBER OF ARGUMENTS"
Concat only takes two arguments.
See: http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions026.htm
Use the concatenation operator:
select column1 || column2 || column3 ...
select ([column1]+','+[column2]+','+[column3]) as concatcolumn from table
Try above the query.it may changes on different type of column data type.