sql >> データベース >  >> RDS >> Sqlserver

SQL SERVER での SUBSTRING と LEFT

    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. オプティマイザーがバッファープールの知識を使用しない理由

    2. 実際の使用法とSQLiteドキュメントのコンテキストで、EnableWriteAheadLoggingはどの程度スレッドセーフですか?

    3. TINYTEXT、TEXT、MEDIUMTEXT、およびLONGTEXTの最大ストレージサイズ

    4. これらの2つのSQLステートメントを組み合わせる方法は?