Tengo una columna SQL con una longitud de 6. Ahora quiero tomar solo el primer carácter de esa columna. ¿Hay alguna función de cadena en SQL para hacer esto?¿Cómo obtener el primer carácter de una cadena en SQL?
Respuesta
LEFT(colName, 1)
también lo hará. Es equivalente a SUBSTRING(colName, 1, 1)
.
Me gusta LEFT
, ya que me parece un poco más limpio, pero en realidad, no hay diferencia en ambos sentidos.
SUBSTRING (MyColumn, 1 , 1)
para el primer carácter y SUBSTRING (MyColumn, 1 , 2)
para los primeros dos.
Prefiero:
SUBSTRING (my_column, 1, 1)
porque es estándar sintaxis SQL-92 y por lo tanto más fáciles de transportar.
Estrictamente hablando, la versión estándar sería
SUBSTRING (my_column FROM 1 FOR 1)
El punto es, la transformación de una a la otra, por lo tanto, a cualquier variación de proveedor similares, es trivial.
p.s. Recientemente me dijeron que las funciones en el SQL estándar son deliberadamente contrarias, al tener listas de parámetros que no son los commalists convencionales, ¡para hacerlos fácilmente identificables como del estándar!
Gracias, IZQUIERDA (str, n) no es compatible con muchos formatos (incluido el que estoy usando). – GreySage
Si usted busca el primer carácter de la cadena en cadena SQL
SELECT CHARINDEX('char', 'my char')
=> return 4
ENTRADA
STRMIDDLENAME
--------------
Aravind Chaterjee
Shivakumar
Robin Van Parsee
SELECT STRMIDDLENAME,
CASE WHEN INSTR(STRMIDDLENAME,' ',1,2) != 0 THEN SUBSTR(STRMIDDLENAME,1,1) || SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,1)+1,1)||
SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,2)+1,1)
WHEN INSTR(STRMIDDLENAME,' ',1,1) != 0 THEN SUBSTR(STRMIDDLENAME,1,1) || SUBSTR(STRMIDDLENAME,INSTR(STRMIDDLENAME,' ',1,1)+1,1)
ELSE SUBSTR(STRMIDDLENAME,1,1)
END AS FIRSTLETTERS
FROM Dual;
OUTPUT
STRMIDDLENAME FIRSTLETTERS
--------- -----------------
Aravind Chaterjee AC
Shivakumar S
Robin Van Parsee RVP
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student
Es fácil de lograr esto mediante la siguiente:
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
y ya sea
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result: his
-O-
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result: This i
- 1. Ramita: Cómo obtener el primer carácter en una cadena
- 2. Ruby: Cómo obtener el primer carácter de una cadena
- 3. Obtener y eliminar el primer carácter de una cadena
- 4. ¿Es posible obtener solo el primer carácter de una Cadena?
- 5. Eliminar el primer carácter de una cadena
- 6. primer carácter de una cadena en Bash
- 7. C#: ¿cómo obtener el primer carácter de una cuerda?
- 8. ¿Cómo descifrar el primer carácter de una cadena?
- 9. BestPractice - Transformar el primer carácter de una cadena en minúsculas
- 10. forma más corta de obtener el primer carácter de cada palabra en una cadena
- 11. ¿Cómo obtener el primer elemento en una cadena?
- 12. Cómo tomar un primer carácter de la cadena
- 13. En Java, elimine el primer carácter de la cadena, (coma)
- 14. ¿Eliminar el último carácter de una cadena en T-SQL?
- 15. cómo obtener el último carácter de una cadena?
- 16. ¿Cómo puedo obtener el enésimo carácter de una cadena?
- 17. Sustituir el primer carácter de la cadena de
- 18. ¿Cómo eliminar el primer y el último carácter de una cadena?
- 19. ¿Cómo reemplazar un carácter de una cadena en SQL?
- 20. grupo por el primer carácter
- 21. ¿Cómo obtener ° carácter en una cadena en python?
- 22. ¿Cómo puedo averiguar si el primer carácter de una cadena es un número en VB.NET?
- 23. Obtener el primer Int (s) en una cadena con javascript
- 24. cómo verificar el primer carácter de una cadena si una letra, cualquier letra
- 25. lógica C# para obtener el primer carácter no repetitivo (distinto) de la cadena
- 26. ¿Cómo obtener el mes de una cadena en sql?
- 27. ¿Cómo puedo averiguar si el primer carácter de una cadena es un número?
- 28. Python: ¿Obtiene el primer carácter de la primera cadena en una lista?
- 29. ¿Cómo borrar el último carácter en una cadena en C#?
- 30. ¿Cómo se escribe con mayúscula el primer carácter de cada palabra, o el primer carácter de una cadena completa, con C#?
No sé sobre el servidor SQL, pero lógicamente un servidor de base de datos puede ser capaz de optimizar IZQUIERDA mejor que SUBSTRING cuando usa un índice. – thomasrutter
@thomasrutter, mirando un plan de ejecución, SQL Server (al menos 2008R2) internamente traduce 'LEFT (colName, length)' en 'SUBSTRING (colName, 1, length) '. Entonces ** no hay optimizaciones ** aquí, es solo una preferencia. –