• One idea could be to use a function to parse your values. To get you started, check out this solution and see if it offers any inspiration: http://social.technet.microsoft.com/wiki/contents/articles/26937.t-sql-splitting-a-string-into-multiple-columns.aspx

    What logic defines the rows to be ignored? You may want to use a case statement, union or similar logic to ensure the function isn't performed on the wrong data.

    As a very brief and rough example, if you would only want to split strings containing more than 10 characters, using a function as mentioned you can do:

    DECLARE @X VARCHAR(200) = 'qwwwwwww 399 0 75124M - 2015-02-06 13:07:29'

    SELECT CASE WHEN LEN(field) > 10 THEN dbo.UFN_SEPARATES_COLUMNS(@X,1,' ') ELSE field END AS C1,

    CASE WHEN LEN(field) > 10 THEN dbo.UFN_SEPARATES_COLUMNS(@X,2,' ') ELSE '' END AS C2,

    CASE WHEN LEN(field) > 10 THEN dbo.UFN_SEPARATES_COLUMNS(@X,3,' ') ELSE '' END AS C3,

    CASE WHEN LEN(field) > 10 THEN dbo.UFN_SEPARATES_COLUMNS(@X,4,' ') ELSE '' END AS C4,

    CASE WHEN LEN(field) > 10 THEN dbo.UFN_SEPARATES_COLUMNS(@X,5,' ') ELSE '' END AS C5,

    CASE WHEN LEN(field) > 10 THEN CAST(dbo.UFN_SEPARATES_COLUMNS(@X,6,' ') + ' ' + dbo.UFN_SEPARATES_COLUMNS(@X,7,' ') AS DATETIME) ELSE '' END AS C6

    Have a play around and see if this would suit your requirements.