title: Contradictional results from (SELECT VALUE FROM STRING_SPLIT())
body: <p>I'm trying to split option value pair in SQL Server 2018, the results are good so far, but now I encountered some strange behaviour in <code>SELECT VALUE FROM STRING_SPLIT()</code>.</p>
  <p>The code is as following:</p>
  <pre><code>SELECT VALUE o FROM STRING_SPLIT('AgingFactorCorr:25',':')
  SELECT VALUE o FROM STRING_SPLIT('AlarmBuzSignal:NA',':') 
  SELECT VALUE o FROM STRING_SPLIT('AgingFactorCorr:25',':') ORDER BY VALUE OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
  SELECT VALUE o FROM STRING_SPLIT('AlarmBuzSignal:NA',':') ORDER BY VALUE OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY
  </code></pre>
  <p>While running the first two SELECTs, the option is at row one and value at row two, for both pairs.</p>
  <p>However, when applying <code>ORDER BY VALUE OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY</code>, the results are reversed.</p>
  <p>For first one I get '25' as option, and for second one 'AlarmBuzSignal', the second one is desired.</p>
  <p>What can be the reason of this behaviour? Can't see any difference besides datatypes maybe, but I don't think that should matter.</p>
  <p>The problem hides in order by clause, after adding LEN(VALUE) DESC, for both I get the desired result, but doesn't seems like an elegant solutions to me.</p>
  <p>Is there a better way to achieve this?</p>
  <p>Any help would be appreciated.</p>