Difference between revisions of "SQL"

From wiki
Jump to navigation Jump to search
m
m
Line 15: Line 15:
 
         Else z
 
         Else z
 
       End) As CaseResult,
 
       End) As CaseResult,
       subquery.field1 as VALUE_SUBQUERY
+
       SubQuery.fieldname as VALUE_SUBQUERY
 
   from  
 
   from  
   (Select distinct fielsspec,
+
   (Select distinct fieldname,
 
     from table1 tabalias
 
     from table1 tabalias
 
     Inner Join table2 on table2field = tabalias.field1
 
     Inner Join table2 on table2field = tabalias.field1
Line 24: Line 24:
 
     Where (field1 > 1value And (field2 = 1 And field3 = 'value'))
 
     Where (field1 > 1value And (field2 = 1 And field3 = 'value'))
 
       or (field1 > avalue )
 
       or (field1 > avalue )
   ) as subquery
+
   ) as SubQuery
 
   Inner Join jointable1 On jointable1.field2 = subquery.field1  
 
   Inner Join jointable1 On jointable1.field2 = subquery.field1  
 
     Where subquery.field1 <> jointable1.field1
 
     Where subquery.field1 <> jointable1.field1
 
</syntaxhighlight>
 
</syntaxhighlight>

Revision as of 14:32, 23 May 2018

LPAD(<value>,<no>,<char>)
Left fill <value> with <char> until <no> length
concat(<value1>,<value2>)
Concatenate 2 strings

The example shows how subquery results can be handled as a table, aliasing of field and tablenames, a case statement and inner joins. Example query

select int_id,
       'fieldspec1' as Alias,
       (Case 
         When table1.field1 > 1 And table2.field1 = 'value' Then x
         When table1.field1 > 2 And table2.field1 = 'value' Then y
         Else z
       End) As CaseResult,
       SubQuery.fieldname as VALUE_SUBQUERY
  from 
   (Select distinct fieldname,
     from table1 tabalias
     Inner Join table2 on table2field = tabalias.field1
     Inner Join table3 on table3field = table2field
      And table3filed = avalue 
     Where (field1 > 1value And (field2 = 1 And field3 = 'value'))
      or (field1 > avalue )
   ) as SubQuery
   Inner Join jointable1 On jointable1.field2 = subquery.field1 
    Where subquery.field1 <> jointable1.field1