J'ai une colonne SQL avec une longueur de 6. Maintenant, je veux prendre seulement le premier caractère de cette colonne. Y at-il une fonction de chaîne dans SQL pour le faire?Comment obtenir le premier caractère d'une chaîne dans SQL?
Répondre
LEFT(colName, 1)
le fera aussi, aussi. C'est équivalent à SUBSTRING(colName, 1, 1)
.
J'aime LEFT
, depuis que je trouve ça un peu plus propre, mais vraiment, il n'y a aucune différence de toute façon.
SUBSTRING (MyColumn, 1 , 1)
pour le premier caractère et SUBSTRING (MyColumn, 1 , 2)
pour les deux premiers.
Je préfère:
SUBSTRING (my_column, 1, 1)
car il est syntaxe standard SQL-92 et donc plus facile à transporter.
à proprement parler, la version standard serait
SUBSTRING (my_column FROM 1 FOR 1)
Le point est, la transformation d'un à l'autre, donc à toute variation de fournisseur similaire, est trivial.
p.s. Ce n'est que récemment que l'on m'a fait remarquer que les fonctions en SQL standard sont délibérément contraires, en ayant des listes de paramètres qui ne sont pas les habituels conventionnels, afin de les rendre facilement identifiables comme étant de la norme!
Merci, LEFT (str, n) n'est pas supporté par de nombreux formats (y compris celui que j'utilise). – GreySage
Si vous recherchez le premier caractère de chaîne dans la chaîne Sql
SELECT CHARINDEX('char', 'my char')
=> return 4
ENTRÉE
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
Il est simple à réaliser cela en suivant:
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
et soit
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result: his
-OU-
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result: This i
- 1. Comment obtenir le premier élément d'une chaîne?
- 2. Tout sélectionner sauf le premier caractère d'une chaîne
- 3. Comment puis-je savoir si le premier caractère d'une chaîne est un nombre dans VB.NET?
- 4. MySQL Sélectionnez où est le premier caractère
- 5. conversion de chaîne, premier caractère supérieur de chaque mot
- 6. LINQ: Obtenez le premier caractère de chaque chaîne dans un tableau
- 7. Comment puis-je obtenir le premier caractère espace non-blanc d'une ligne en utilisant php?
- 8. SQL Obtenir un caractère à la position
- 9. Détecter le caractère chinois (multi-octets) dans la chaîne
- 10. Comment supprimer le caractère non numérique d'une chaîne dans java?
- 11. Comment diviser une chaîne avec le caractère majuscule dans l'iPhone
- 12. Comment puis-je obtenir la quasi-dernière chaîne à partir de "/" chaîne délimitée dans T-SQL?
- 13. Comment pouvez-vous trouver le nombre d'occurrences d'un caractère particulier dans une chaîne en utilisant sql?
- 14. Fetch les lignes où le premier caractère non alphanumérique
- 15. Comment obtenir le premier et le dernier enregistrement de DB
- 16. Capturer premier caractère en entrant dans le mode d'édition - le contrôle d'édition personnalisé dans DataGridView
- 17. L'assistant d'importation SQL supprime le premier zéro
- 18. Javascript - Remplacer le caractère d'échappement dans un littéral de chaîne
- 19. Comment savoir si ma chaîne contient le caractère "micro" Unicode?
- 20. Extrait le premier mot d'une chaîne dans une requête SQL Server
- 21. Extraction du premier jeton d'une chaîne délimitée
- 22. Comment supprimer un caractère d'une colonne dans SQL Server?
- 23. Retour du premier caractère DISTINCT d'un champ (MySQL)
- 24. comment remplacer le caractère nul
- 25. Comment déterminer efficacement si une chaîne commence par un nombre, puis obtenir tous les numéros suivants jusqu'à ce que le premier caractère non numérique?
- 26. Comment obtenir le nombre de caractères dans la chaîne dans Transact SQL, "l'autre sens"
- 27. Comment puis-je trouver l'index du premier "élément" dans ma chaîne en utilisant Java?
- 28. obtenir sous chaîne dans le script shell
- 29. Comment ajouter un caractère dans une chaîne (en utilisant vC++)?
- 30. Couper le caractère '(apostrophe) dans une instruction SQL
Je ne sais pas SQL Server, mais logiquement un serveur de base de données peut être en mesure d'optimiser GAUCHE mieux que SUBSTRING quand il utilise un index. – thomasrutter
@thomasrutter, En regardant un plan d'exécution, SQL Server (au moins 2008R2) traduit intérieurement 'LEFT (colName, longueur)' en SUBSTRING (colName, 1, length) '. Donc ** il n'y a pas d'optimisations ** ici, c'est juste une préférence. –