sql >> Database teknologi >  >> RDS >> Sqlserver

SUBSTRING vs. LEFT i SQL SERVER

Der er ingen forskel overhovedet mellem left og substring fordi left er oversat til substring i udførelsesplanen.

For eksempel:

select substring(col, 1, 2),
       left(col, 3)
from YourTable

vil se sådan ud i udførelsesplanen

<DefinedValue>
  <ColumnReference Column="Expr1004" />
  <ScalarOperator ScalarString="substring([col],(1),(2))">
    <Intrinsic FunctionName="substring">
      <ScalarOperator>
        <Identifier>
          <ColumnReference Column="col" />
        </Identifier>
      </ScalarOperator>
      <ScalarOperator>
        <Const ConstValue="(1)" />
      </ScalarOperator>
      <ScalarOperator>
        <Const ConstValue="(2)" />
      </ScalarOperator>
    </Intrinsic>
  </ScalarOperator>
</DefinedValue>
<DefinedValue>
  <ColumnReference Column="Expr1005" />
  <ScalarOperator ScalarString="substring([col],(1),(3))">
    <Intrinsic FunctionName="substring">
      <ScalarOperator>
        <Identifier>
          <ColumnReference Column="col" />
        </Identifier>
      </ScalarOperator>
      <ScalarOperator>
        <Const ConstValue="(1)" />
      </ScalarOperator>
      <ScalarOperator>
        <Const ConstValue="(3)" />
      </ScalarOperator>
    </Intrinsic>
  </ScalarOperator>
</DefinedValue>


  1. MySQL erstatter alle mellemrum med -

  2. Hvis der findes data, ellers... bruger du Oracle SQL?

  3. Få adgang til ekstern Postgres-server med pgAdmin

  4. Indsæt i tabel fra samlingstype oracle 12c - ORA-00902:ugyldig datatype