into cuantos columns caracteres sql tsql sql-server-2008 collation string-comparison

cuantos - substring sql



Intercambio de colada de variables nvarchar en t-sql (4)

Si desea comparar o unir dos columnas de colación diferente, esto podría ayudar. En mi caso tuve que comparar dos columnas con una usando ''SQL_Latin1_General_CP1_CI_AS'' y la otra usando ''Latin1_General_CP1_CI_AS''.

Simplemente usé esta opción donde me uno a estos dos.

en A.Person = B.NAME compilar database_default

Necesito cambiar la intercalación de una variable nvarchar. Por documentación :

(...) 3. La cláusula COLLATE se puede especificar en varios niveles. Estos incluyen los siguientes:

Casting el cotejo de una expresión. Puede utilizar la cláusula COLLATE para aplicar una expresión de carácter a una determinada intercalación. A los literales de caracteres y las variables se les asigna la intercalación predeterminada de la base de datos actual. A las referencias de columna se les asigna la colación de definición de la columna. Para la intercalación de una expresión, consulte Precedencia de intercalación (Transact-SQL).

Sin embargo, no puedo averiguar la sintaxis correcta para el uso de CAST (), CONVERT () o la declaración de variable con DECLARE para este propósito.


Si está cambiando entre 2 y 1 byte, o vice-ver-sa, las codificaciones de caracteres entonces CAST o Convert es necesario. No es superfluo en estos casos.

Cuando la columna de origen es una secuencia de caracteres de 2 bytes (nchar, nvarchar) y se requiere que la proyección de selección sea un carácter de un solo byte (char, varchar), debe especificar la conversión y conversión. Aplicar la conversión de colación antes de la conversión entre los sistemas de tipo.

SELECT CAST(N''ФBC'' COLLATE SQL_Latin1_General_CP1_CI_AS as varchar(10)) AS ProjectedSingleByte


CAST o CONVERT es superfluo!

SELECT N''abc'' COLLATE French_CS_AS

Es superfluo porque solo cambiar la intercalación no cambia el tipo de datos NVARCHAR .


SELECT CAST(''abc'' AS varchar(5)) COLLATE French_CS_AS