Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SUBSTRING vs LEFT w SQL SERVER

Nie ma żadnej różnicy między left i substring ponieważ left jest tłumaczony na substring w planie wykonania.

Na przykład:

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

będzie wyglądać tak w planie wykonania

<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. Jaki jest ciąg połączenia dla localdb dla wersji 11?

  2. HAS_DBACCESS() – Dowiedz się, czy użytkownik może uzyskać dostęp do bazy danych w SQL Server

  3. Jak usunąć wiodące białe znaki w SQL Server — LTRIM()

  4. Zwijanie wielu rzędów w jednym rzędzie

  5. Przechowywanie danych UTF-16/Unicode w SQL Server