sql >> Databáze >  >> RDS >> Sqlserver

SUBSTRING vs LEFT na SQL SERVER

Mezi left není vůbec žádný rozdíl a substring protože left je přeložen na substring v prováděcím plánu.

Například:

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

bude vypadat takto v prováděcím plánu

<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. Jak najít port pro MS SQL Server 2008?

  2. Podporuje MySQL kontrolní omezení?

  3. Vytvořte databázi MySQL pomocí pythonu

  4. MySQL načte datový soubor, když jsou splněny podmínky