• CELKO (12/13/2012)


    My table structure

    Please read just one little book on SQL and RDBMS. Please, just one little book! This is not a table; it has no key; it has to way to ever have a key!! Why did you put the data type as prefix on the column names? That was 1960's BASIC, not SQL! SQL does not use {} like you did. Her is a guess at fixing the disaster.

    CREATE TABLE Client_Shares

    (share_id CHAR(10) NOT NULL PRIMARY KEY,

    lm_id INTEGER,

    ml_id INTEGER,

    is_id INTEGER,

    r_id INTEGER);

    I need to figure out a query that will delete all rows that don't have at least 2 non-null values.

    No, you need to figure out a lot more than that!

    DELETE FROM Client_Shares

    WHERE IFNULL(lm_id, 1) + IFNULL(ml_id, 1)

    + IFNULL(is_id, 1) + IFNULL(t_id, 1) >= 2;

    IFNULL is a MySQL item. In SQL Server, you'd use IsNull or Coalesce.

    Also, this solution (Joe's Where clause) is completely wrong.

    Let's assume none of the columns are null, and all have positive integer values. For example, they all have 10 as their value. 10+10+10+10 = 40. 40 >= 2, so that row would be deleted. But it's not supposed to be. None of the columns are null in that row.

    Total failure to understand the requirements, Joe.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon