Checking sequence of codes

  • Hi all

    I've run across a bit of a problem with checking the sequence of codes in a string.

    The codes are semi-colon separated in this string, but they are also broken out into individual fields as well.

    The codes are in the format:-

    Q07;Q09;W365;F56......;F12

    This isn't an exhaustive list and there code be up to 50 codes of either 3 or 4 characters.

    I need to find a way to check if any of the following codes:-

    Q22

    Q23

    Q24

    come before

    Q07

    Q08.

    These codes could be inany of the code fields which is why I'm using the overall string as shown above.

    I thought about using MIN and CHARINDEX to get the relative positions but the MIN argument doesn't work like that (think I've been working with Excel too long:w00t:).

    Has anyone got any ideas on which way to go with this one?

  • richardmgreen1 (9/12/2014)


    Hi all

    I've run across a bit of a problem with checking the sequence of codes in a string.

    The codes are semi-colon separated in this string, but they are also broken out into individual fields as well.

    The codes are in the format:-

    Q07;Q09;W365;F56......;F12

    This isn't an exhaustive list and there code be up to 50 codes of either 3 or 4 characters.

    I need to find a way to check if any of the following codes:-

    Q22

    Q23

    Q24

    come before

    Q07

    Q08.

    These codes could be inany of the code fields which is why I'm using the overall string as shown above.

    I thought about using MIN and CHARINDEX to get the relative positions but the MIN argument doesn't work like that (think I've been working with Excel too long:w00t:).

    Has anyone got any ideas on which way to go with this one?

    Yep. Can you set up a sample table script please?

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden

  • Hi Chris

    Here's the script with around 450 records. Not all of them will have one (or more) or each set of codes.

    create table #test (Code varchar(1000))

    insert into #test (Code)

    select 'Q074;Q221;Y714;M459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y959;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T364;Y218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H095;H152;Q223;Z942;Q233;Z942;E852;U212;Y982;Z401;Z926;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'P242;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Y714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;T413;P242;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y181;Z535;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z942;Q509;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y181;Z299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q075;Q231;Z942;U212;Y973;Y983;Z924;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;T361;U354;Y973;Y981;U051;Y981;T123;Y532;Z942;T123;T123;T112;Y532;T124;U051;Y981;T102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H102;Z942;Q231;Z942;Y181;Y714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z942;Q181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;T432;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q038;Q121;Q243;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y181;Z535;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q491;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z943;Q181;Q121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;Q208;Y068;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;M459;M479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;T413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Q124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q241;Y752;Z941;U212;Y973;Y982;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;Z942;X301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z942;Q493;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T439;Q242;Y752;Q113;R439;Y959;X369;Z899;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Y181;Z533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Q093;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Z942;T423;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'B274;Z943;T872;O142;Z943;Q223;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q089;Q222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M533;M459;U212;Y973;Y982;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z942;Q074;Y752;U212;Y973;Y982;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y508;Z462;Z942;Q432;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;T423;Q103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;Q176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q089;Q231;Z942;Z942;P233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q079;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z942;X301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q231;Y752;Z942;Q181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q231;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Z943;Y218;Z463;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;Q235;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z943;Y181;Z458;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'P242;Q243;Z942;P263;M459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q232;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H333;Q235;Z949;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Y218;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q223;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;T313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z942;Q432;Z943;G694;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q232;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z943;Y181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z942;Y714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z943;Y752;T422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z942;Q121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q075;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;Q121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z943;T422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;Z941;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H333;G742;Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Q432;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'G699;Q243;Y752;Z943;T423;Q172;T309;Z926;T413;G699;T282;T309;Z926;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Y752;Z942;Q233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q234;Y752;Z942;Q492;P092;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H074;Q074;Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;T423;Q491;Z943;Q176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;S069;Y064;Z498;M459;T283;T301;Y111;Z603;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;Q413;Y752;Z941;Y181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q432;Y752;Z943;Q243;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;Q413;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Q074;Y714;U354;Y973;Y981;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y959;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H335;H152;Q231;Z942;M021;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y218;T413;T364;T283;T283;L997;Y532;Z391;Z942;L914;Z942;U212;Y973;Y982;Z411;Z413;Z421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z942;T432;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q233;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Q491;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q381;Z943;Q413;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;L688;Y258;Z459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q235;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'P243;Q231;Y181;Z942;P201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;Q181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Q013;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q232;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M538;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;M455;Q189;Q121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Z941;T413;Q058;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q089;P239;Q233;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;T423;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q234;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y714;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q241;Z943;Q233;Z942;Q478;Y222;Z942;Y181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z942;Y181;Y714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q089;Q222;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;S604;Z926;M479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;T424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y751;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T422;Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;Y181;Z535;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y181;Z533;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'G699;G743;Z942;H104;Q235;Z942;H554;M292;Y534;Z942;M459;U212;Y973;Y982;Z926;O161;T423;E852;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Y181;Z535;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q498;Y062;Z943;Q304;Z943;Q233;Y752;Z942;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'R172;Q222;Y819;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;T423;Q493;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Q321;Y714;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T468;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'P138;Q233;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'P233;Q222;Q235;Z943;Q371;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Q233;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H335;H152;G694;Q074;Q221;H153;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T463;Y218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Q171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y508;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;Q233;Y953;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;U354;Y981;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z943;T423;Z943;Q413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q231;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;T413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;Q113;Y953;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q113;Q233;Y752;Z943;T422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y714;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q234;Y954;Y752;Z942;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y954;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q222;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q236;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;T463;U212;Y973;Y982;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;T432;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Q075;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q239;Y752;Z943;Q014;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z942;Y752;Q432;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q232;Z943;T415;H289;U212;Y973;Y982;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T364;Y218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Y752;Q432;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M378;U212;Y982;Z411;Z413;Z421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y181;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T364;Y218;Z533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q235;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'M344;Q074;Q221;S021;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z943;Q174;T423;Q122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y959;Z943;X301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z943;Y181;Z533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z941;Q371;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q233;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'U212;Y973;Y983;Z924;Z926;O161;H072;G694;Q235;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Y953;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T361;H412;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z943;Q089;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;Q413;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;Q371;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y714;Y181;Z299;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y959;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T463;T364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;Y752;T423;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q075;Y752;Q231;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;T423;Q189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Y954;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q111;Y953;Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;Z943;Q098;Y258;Z459;X301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z942;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;S069;Z529;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'H333;Y752;Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;Q176;Q361;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q089;P233;Q233;Z943;Q231;Z942;M538;M455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'P232;Q235;Z943;Q089;P054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z942;Q233;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y954;Z942;T439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z943;S021;T252;T413;L914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;H152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T342;Q231;Y052;Y714;Z942;U081;Y973;Y981;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T422;Q222;Q176;Y203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q079;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;Q432;Y752;Z943;M479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q243;Y752;Z943;T423;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Y954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T364;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q231;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T973;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q236;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z942;Q432;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;Q474;Y752;Z942;T413;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;Q171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q413;Y752;Q233;Z942;T432;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'T423;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;T413;Y218;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;Q491;Z943;Q189;Q121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;Q176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Q124;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z943;Q233;Z943;Q371;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Q171;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q328;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;Q235;Z942;M479;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q089;Q231;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z942;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Y954;X301;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z942;Y954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z942;Q361;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;T364;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;U212;Y973;Y982;Z926;O161;U071;Y981;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T361;T411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q371;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z942;Y954;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z942;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z942;Q181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;Q371;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q223;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M292;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;U212;Y973;Y981;Z412;Z411;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y714;T361;Y219;Y209;Z533;T413;U212;Y973;Y983;Z924;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q242;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q222;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y959;Z943;X376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q235;Y752;Z942;T423;P268;Y022;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q432;Z942;Q231;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q236;Z942;T413;Y223;U212;Y973;Y982;Z926;O161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Y752;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Y954;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Z942;Q413;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q241;Y752;Z941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;Y752;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q222;Y752;T422;Q181;Q121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Z943;T364;T463;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;M455;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;U212;Y973;Y982;Z411;Z413;Z421;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q231;Y752;Z943;U212;Y973;Y981;Z419;Z429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q432;Q235;Z943;M292;Z943;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'

    I just want to retrieve the records where the one of the first set of codes comes before one of the second set.

    This is what I've got so far, but I'm not sure how accurate it is:-

    ((patindex('%Q22%',abs1.CodeConcatenated)

    + patindex('%Q23%',abs1.CodeConcatenated)

    + patindex('%Q24%',abs1.CodeConcatenated)

    )

    <

    (patindex('%Q07%',abs1.CodeConcatenated)

    + patindex('%Q08%',abs1.CodeConcatenated)

    ))

    This is part of a larger WHERE clause and it's not the tidiest piece of code so any comments on tidying it up/making it more efficient are more than welcome.

  • Another question:

    come before

    Q07

    Q08.

    Both of them or either of them?

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden

  • You can have any of:-

    Q22

    Q23

    Q24

    ahead of either

    Q07

    Q08

    As far as I know, you won't get more than one from each set.

    The codes above could have one extra digit at the end (e.g. Q225) which is why I'm using the LIKE in my WHERE clause and using PATINDEX and not CHARINDEX (in my iffy code).

  • Here you go, Richard. I think you know about Jeff Moden's splitter already:

    ;WITH SplitData AS (

    SELECT *

    FROM (SELECT ID = ROW_NUMBER() OVER(ORDER BY (SELECT NULL)), Code FROM #test) t

    CROSS APPLY DelimitedSplit8K(t.Code,';') s

    WHERE LEFT(s.Item,3) IN ('Q22','Q23','Q24','Q07','Q08')

    )

    SELECT ID, Code

    FROM SplitData s

    WHERE LEFT(s.Item,3) IN ('Q07','Q08')

    AND EXISTS (

    SELECT 1

    FROM SplitData i

    WHERE i.ID = s.ID

    AND LEFT(i.Item,3) IN ('Q22','Q23','Q24')

    AND i.ItemNumber < s.ItemNumber

    )

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden

  • Thanks Chris

    Just to check my understanding of this, it looks like the splitter will help to give each code it's own line number to start with.

    Then, the SELECT after the CTE checks where the relevant Q codes are placed based on the row numbers to see which came first.

    Am I along the right lines?

    Also, If I need to bring in extra fields would they go inside the CTE, or the SELECT afterwards (I need to bring in about 45 other fields)?

    I'm assuming (:pinch:)the CTE but it would be nice to have that confirmed.

  • richardmgreen1 (9/12/2014)


    Thanks Chris

    Just to check my understanding of this, it looks like the splitter will help to give each code it's own line number to start with.

    Then, the SELECT after the CTE checks where the relevant Q codes are placed based on the row numbers to see which came first.

    Am I along the right lines?

    Yes, that's correct.

    Also, If I need to bring in extra fields would they go inside the CTE, or the SELECT afterwards (I need to bring in about 45 other fields)?

    I'm assuming (:pinch:)the CTE but it would be nice to have that confirmed.

    You could replace SELECT ID, Code with SELECT *.

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden

  • Thanks Chris

    I'm going to bookmark this little lot as I'm fairly certain it will come up again (and again, and again).

  • richardmgreen1 (9/12/2014)


    Thanks Chris

    I'm going to bookmark this little lot as I'm fairly certain it will come up again (and again, and again).

    You're welcome.

    I'd recommend you work through the delimitedsplit article. It's not just a great learning opportunity, it's quite amusing too.

    “Write the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden

  • Hi Chris

    Sorry to bring this back up but the code you passed on seems to be running very slowly.

    This code (my original):-

    set dateformat dmy

    declare

    @start datetime

    ,@end datetime

    set @start='01/09/2014'

    set @end=getdate()

    select

    abs1.AccountNumber

    ,abs1.ServiceSeqID as Episode_Number

    ,abs1.UnitNumber

    ,abs1.Name

    ,abs1.[PatientPassedAway]

    ,cast(abs1.[AdmitDateTime] as date) as Admit_Date

    ,cast(abs1.[DischargeDateTime] as date) as Discharge_Date

    ,cast(abs1.[StartDateTime] as date) as Episode_Start_Date

    ,cast(abs1.[EndDateTime] as date) as Episode_End__Date

    ,datediff(d,abs1.[StartDateTime],abs1.[EndDateTime]) as Episode_LOS

    ,datediff(d,abs1.[AdmitDateTime],abs1.[DischargeDateTime]) as Spell_LOS

    ,abs1.[ProviderName]

    ,[AbsTapeCode] as Treatment_Code

    ,abs1.[LatestWardLocationInSpell]

    ,abs1.[AgeAtAdmission]

    ,abs1.[PrimaryDiagnosis]

    ,abs1.[SecDiag01]

    ,abs1.[SecDiag02]

    ,abs1.[SecDiag03]

    ,abs1.[SecDiag04]

    ,abs1.[SecDiag05]

    ,abs1.[SecDiag06]

    ,abs1.[SecDiag07]

    ,abs1.[SecDiag08]

    ,abs1.[SecDiag09]

    ,abs1.[SecDiag10]

    ,abs1.[SecDiag11]

    ,abs1.[SecDiag12]

    ,abs1.[PrimProcOpcsCode]

    ,abs1.[SecProcOpcsCode01]

    ,abs1.[SecProcOpcsCode02]

    ,abs1.[SecProcOpcsCode03]

    ,abs1.[SecProcOpcsCode04]

    ,abs1.[SecProcOpcsCode05]

    ,abs1.[SecProcOpcsCode06]

    ,abs1.[SecProcOpcsCode07]

    ,abs1.[SecProcOpcsCode08]

    ,abs1.[SecProcOpcsCode09]

    ,abs1.[SecProcOpcsCode10]

    ,abs1.[SecProcOpcsCode11]

    ,abs1.[SecProcOpcsCode12]

    ,abs1.[AdmStatus]

    ,abs1.[HrgEpisodeMeditechCalculatedCode]

    ,abs1.[HrgEpisodeMeditechCalculatedDesc]

    ,abs1.[CoderName]

    ,cast(abs1.[CodedDate] as date) as Coded_Date

    ,abs1.[Uncoded_Reason]

    ,abs1.[Additional_Comments]

    ,abs1.[AbstractStatus]

    from

    [RFT_RS_REPORTING].[dbo].RFT_DR_ALL_ABS abs1

    where

    cast(abs1.[DischargeDateTime] as date) between @start and @end

    and (abs1.OpcsProcCodeConcatenated like '%Q22%'

    or abs1.OpcsProcCodeConcatenated like '%Q23%'

    or abs1.OpcsProcCodeConcatenated like '%Q24%')

    and (abs1.OpcsProcCodeConcatenated like '%Q07%'

    or abs1.OpcsProcCodeConcatenated like '%Q08%')

    and ((patindex('%Q22%',abs1.OpcsProcCodeConcatenated)

    + patindex('%Q23%',abs1.OpcsProcCodeConcatenated)

    + patindex('%Q24%',abs1.OpcsProcCodeConcatenated)

    )

    <

    (patindex('%Q07%',abs1.OpcsProcCodeConcatenated)

    + patindex('%Q08%',abs1.OpcsProcCodeConcatenated)

    ))

    runs in a couple of seconds (but bring back no rows for the state dates which could be correct).

    I've updated your code to the following;-

    set dateformat dmy

    declare

    @start datetime

    ,@end datetime

    set @start='01/09/2014'

    set @end=getdate()

    ;WITH SplitData AS (

    SELECT

    *

    FROM

    (SELECT

    abs1.AccountNumber

    ,abs1.ServiceSeqID as Episode_Number

    ,abs1.UnitNumber

    ,abs1.Name

    ,abs1.[PatientPassedAway]

    ,cast(abs1.[AdmitDateTime] as date) as Admit_Date

    ,cast(abs1.[DischargeDateTime] as date) as Discharge_Date

    ,cast(abs1.[StartDateTime] as date) as Episode_Start_Date

    ,cast(abs1.[EndDateTime] as date) as Episode_End__Date

    ,datediff(d,abs1.[StartDateTime],abs1.[EndDateTime]) as Episode_LOS

    ,datediff(d,abs1.[AdmitDateTime],abs1.[DischargeDateTime]) as Spell_LOS

    ,abs1.[ProviderName]

    ,[AbsTapeCode] as Treatment_Code

    ,abs1.[LatestWardLocationInSpell]

    ,abs1.[AgeAtAdmission]

    ,abs1.[PrimaryDiagnosis]

    ,abs1.[SecDiag01]

    ,abs1.[SecDiag02]

    ,abs1.[SecDiag03]

    ,abs1.[SecDiag04]

    ,abs1.[SecDiag05]

    ,abs1.[SecDiag06]

    ,abs1.[SecDiag07]

    ,abs1.[SecDiag08]

    ,abs1.[SecDiag09]

    ,abs1.[SecDiag10]

    ,abs1.[SecDiag11]

    ,abs1.[SecDiag12]

    ,abs1.[PrimProcOpcsCode]

    ,abs1.[SecProcOpcsCode01]

    ,abs1.[SecProcOpcsCode02]

    ,abs1.[SecProcOpcsCode03]

    ,abs1.[SecProcOpcsCode04]

    ,abs1.[SecProcOpcsCode05]

    ,abs1.[SecProcOpcsCode06]

    ,abs1.[SecProcOpcsCode07]

    ,abs1.[SecProcOpcsCode08]

    ,abs1.[SecProcOpcsCode09]

    ,abs1.[SecProcOpcsCode10]

    ,abs1.[SecProcOpcsCode11]

    ,abs1.[SecProcOpcsCode12]

    ,abs1.[AdmStatus]

    ,abs1.[HrgEpisodeMeditechCalculatedCode]

    ,abs1.[HrgEpisodeMeditechCalculatedDesc]

    ,abs1.[CoderName]

    ,cast(abs1.[CodedDate] as date) as Coded_Date

    ,abs1.[Uncoded_Reason]

    ,abs1.[Additional_Comments]

    ,abs1.[AbstractStatus]

    ,ID = ROW_NUMBER() OVER(ORDER BY (SELECT NULL)), abs1.OpcsProcCodeConcatenated FROM [RFT_RS_REPORTING].[dbo].RFT_DR_ALL_ABS abs1) t

    CROSS APPLY [RFT_RS_REPORTING].dbo.DelimitedSplit8K(t.OpcsProcCodeConcatenated,';') s

    WHERE

    LEFT(s.Item,3) IN ('Q22','Q23','Q24','Q07','Q08')

    )

    SELECT

    *

    FROM

    SplitData s

    WHERE

    LEFT(s.Item,3) IN ('Q07','Q08')

    AND EXISTS (

    SELECT 1

    FROM SplitData i

    WHERE i.ID = s.ID

    AND LEFT(i.Item,3) IN ('Q22','Q23','Q24')

    AND i.ItemNumber < s.ItemNumber

    )

    with all the extra fields I need to bring in.

    I'm using the latest version of Jeff's splitter (as far as I know).

    I've tested it with the same date range and it took 4 minutes. It did, however, bring back some data that appears to be correct.

    I'm obviously doing something wrong so I'd be very grateful for any extra info you could give.

    I'm not entirely sure what other info you'll need (there are no indexes on this table which would probably help) so feel free to let me know you want need.

  • Just rerun the SQL and attached the execution plan (which will hopefully help).

    ::edit::

    Looking at the execution plan (and I know very little about these), it looks like it's a sort that's taking the time.

    The only sort I can see is the ID (based on Row_Number) inside the CTE.

    I'm thinking (guessing, really) that an index on the OpcsProcCodeConcatenated field will help matters. Having said that, I don't want to just start dropping indexes onto the table based on a guess.

  • Have you considered persisting the "split" values?

    With the queries you're running against substrings of a column - I really doubt that any form of indexing will help. On the other hand - keeping those cdoes and their sequences in a tables could return stuff in literally no time flat.

    ----------------------------------------------------------------------------------
    Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?

  • Try

    create table #test (Code varchar(1000))

    insert into #test (Code)

    select 'Q074;Q221;Y714;M459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y752;Z942;Q124;Q074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q233;Y959;Z943;Q084;Q241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;Q233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select ';Q221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' union all

    select 'Q074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'

    select code

    from #test

    cross apply (

    values (nullif(patindex('%Q22%',Code),0))

    , (nullif(patindex('%Q23%',Code),0))

    , (nullif(patindex('%Q24%',Code),0))

    ) set1 (idx)

    cross apply (

    values (nullif(patindex('%Q07%',Code),0))

    , (nullif(patindex('%Q08%',Code),0))

    ) set2 (idx)

    group by code

    having min (set1.idx) < max (set2.idx)

    Restriction: only first occurences are taken into account. It will fail to find

    'Q084;Q233;Q084;;;...

    for example.

  • richardmgreen1 (9/15/2014)


    I'm using the latest version of Jeff's splitter (as far as I know).

    I wouldn't use the DelimitedSplit8K or any other splitter for this. You're just trying to find if a pattern exists somewhere in each row and not trying to keep separate elements found on each row. The other solutions that use PATINDEX and CHARINDEX will be much faster, in this case, provided that you're not actually trying to get a count of each occurrence.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

Viewing 15 posts - 1 through 15 (of 18 total)

You must be logged in to reply to this topic. Login to reply