VarcharとCharの動作は、キャストで異なります
-
27-09-2019 - |
質問
出力がこのクエリと異なる理由
SELECT DATALENGTH(CAST('test' AS VARCHAR)), DATALENGTH(CAST('test' AS CHAR))
出力:
4,30
解決
Varcharは常に渡された文字列の長さに調整します。したがって、出力は4です。
CHARのデフォルトの長さは30であるため、出力は30です。
他のヒント
なぜなら 「キャストと変換機能を使用するときにnが指定されていない場合、デフォルトの長さは30です"。しかし、DatalengthがVarcharフィールドに適用されると、後続のスペースを無視しますが、Charフィールドの場合、長さはフィールド自体のサイズにすぎません。
所属していません StackOverflow