Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SUBSTRING срещу LEFT в SQL SERVER

Няма никаква разлика между left и substring защото left се превежда в substring в плана за изпълнение.

Например:

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

ще изглежда така в плана за изпълнение

<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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да създам потребител в SQL-Server, който има достъп само до една таблица и може да вмъква само редове

  2. Заменете колоната за самоличност от int на bigint

  3. Шаблон за проектиране за персонализирани полета в релационна база данни

  4. SQL между не включва

  5. MERGE атомарно изявление в SQL2008 ли е?