SQL Query for specific conditions

sql where multiple conditions
sql where and
sql if statement
sql where multiple values
sql case
not in sql query
sql join
sql like

Need assistance with SQL statement for below condition. Have 3 columns in a table (TableName), Sno (unique records), Name ( there are multiple records that can have same name) , Condition (True,False) . Need to extract All records if the last record true only.

Have tried below query

select Sno(Max),Name,Condition 
from TableName 
where Conditon = 'True' 
group by Name,Conditon;

Expected: If last record (SNo (Max)) has value = true (condition column) then return this record, else no records displayed.

Actual: All records are displayed including true and false condition

I think this is what you are looking for. If table is like this:

[It's recommended to use tinyint(1) as Boolean in MySQL.]

You can use this query:

SELECT a.*
FROM `TableName` a
LEFT JOIN `TableName` b ON(a.`Sno` < b.`Sno`
                           AND a.`Name` = b.`Name`)
WHERE a.`Conditon` = 1
  AND b.`Sno` IS NULL

to get this result:

This way will work more effective than using an inner sub-query. Especially in large tables.

SQL WHERE Clause, The WHERE clause is used to extract only those records that fulfill a specified condition. WHERE Syntax. SELECT column1, column2, FROM table_name In SQL query the WHERE clause basically helps you to filter the records based on certain criteria. In this post explained about all the possible conditions that you can give. #1. SQL WHERE Clause ‘Equal’ Condition

I think you're looking for that:

SELECT Sno, Name, Condition 
FROM TableName 
WHERE Conditon = 'True' AND Sno=(SELECT MAX(Sno) FROM TableName);

Beware of types: if 'Condition' column is Boolean WHERE clause should be

WHERE Condition IS TRUE AND ... 

Use Queries to show records based on conditions – Documentation , Queries let you show only a specific subset of your data by using the relabel column headers; show rows (records) based on specified criteria� SQL WHERE Summary: in this tutorial, you will learn how to use the SQL WHERE clause to filter rows based on specified conditions. Introduction to SQL WHERE clause To select certain rows from a table, you use a WHERE clause in the SELECT statement.

Could be use a where exist on a subquery for condition TRUE and Sno = max(Sno)

select  * 
from TableName 
where exist (
  select  * 
  from TableName 
  where  Condition = 'True'  
  and  Sno = (
  select  max(Sno) 
  from TableName 
  )
)

How to Filter Query Results using WHERE, A where clause is a condition that must be met in order for a row to be returned in a query. A simple example of a Select statement with a where clause is Select� SQL SELECT – querying data from specific columns. The SELECT statement allows you to specify exactly which columns you want to retrieve data in any order. It doesn’t have to be in the order defined in the table. For example, if you use want to view the employee id, first name, last name, and hire date of all employees, you use the following

SELECT * 
FROM   tablename 
WHERE  sno IN (SELECT Sno(max) 
               FROM   tablename 
               GROUP  BY NAME) 
       AND condition = 'true' 

SQL: Combining the AND and OR Conditions, examples. The SQL AND condition and OR condition can be combined to test for Duration: 2:52 Posted: 26 May 2016 Search for a book that is both published by a specific publisher and pertains to cooking. To create a query that searches for values in either of two (or more) columns, you specify an OR condition. To create a query that must meet all conditions in two (or more) columns, you specify an AND condition. Specifying an OR Condition

SQL: IN Condition, It is used to help reduce the need for multiple OR conditions in a SELECT, INSERT, UPDATE, or DELETE statement. Syntax. The syntax for the IN condition in SQL� The SQL WHERE Clause. The WHERE clause is used to filter records. The WHERE clause is used to extract only those records that fulfill a specified condition. WHERE Syntax

SQL Query to select rows based on specific condition, It is possible to solve by adding one more copy of a table for to check there is no ' Play' activity after. But it's better to use a subquery for to select� SQL HOME SQL Intro SQL Syntax SQL Select SQL Select Distinct SQL Where SQL And, Or, Not SQL Order By SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL Min and Max SQL Count, Avg, Sum SQL Like SQL Wildcards SQL In SQL Between SQL Aliases SQL Joins SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Self Join SQL

Filtering – Databases and SQL, Write queries that select records that satisfy user-specified conditions. is the ability to filter data, i.e., to select only those records that match certain criteria. An equality condition tests that a column or expression matches a value. As you may expect, the equal sign is used to form equality. It the following SQL statement we are returning all Persons whose title is Mr. SELECT FirstName, LastName FROM Person.Person WHERE Title = 'Mr.'

Comments
  • What do you mean with "last record", I don't see an order by ? And what is Sno(Max) in the SELECT list?
  • Please add sample data and expected results.
  • Which MySQL version are you using?
  • A few rows of sample data and the expected result will go a long way for us to understand what exactly do you need.
  • Last record meaning, in my example if i select * TableName, the results return Sno (1,2,3,4,5,6), Name (Prasan,Prasan,Prasan,Joakim,Joakim,Joakim) and Condition (True,True,False,True,True,True ) , hence I am expecting results having 6,Joakim,True (as last record is true here)
  • Yes this is the exact result i am expecting, but could we do with more simpler queries, i mean without using join condition ?
  • @PrasanShetty This way will work more effective than using an inner sub-query. Especially in large tables.
  • This query has helped me get the required results. Thank You!
  • With this i am getting only one record. I am looking for all records in which the last record is true (i.e. Condition=True)
  • For example if i select * TableName, the results return Sno (1,2,3,4,5,6), Name (Prasan,Prasan,Prasan,Joakim,Joakim,Joakim) and Condition (True,True,False,True,True,True ) , i am expecting results having 6,Joakim,True (as last record is true here) , condition column is not boolean
  • I get only one record, but in my table i have multiple records which has Condition Column value as True for Max Sno(last record)
  • ok, then question is not clear to me. If you want to get quality answers, provide detailed questions: I suggest you to modify your original question providing a data sample set including the situation you mention, and the expected results.
  • The comment by izem above which is the exact results i am looking for, would it it be possible to get it by using more simpler queries (without using join)