Mam kolumnę SQL o długości 6. Teraz chcę wziąć tylko pierwszy znak z tej kolumny. Czy istnieje funkcja string w SQL, aby to zrobić?Jak uzyskać pierwszy znak ciągu w SQL?
Odpowiedz
LEFT(colName, 1)
również to zrobi. Jest to odpowiednik SUBSTRING(colName, 1, 1)
.
Podoba mi się LEFT
, ponieważ uważam, że jest nieco czystszy, ale tak naprawdę, nie ma różnicy w żaden sposób.
SUBSTRING (MyColumn, 1 , 1)
dla pierwszej postaci i SUBSTRING (MyColumn, 1 , 2)
dla pierwszych dwóch.
wolę:
SUBSTRING (my_column, 1, 1)
ponieważ jest to standardowa składnia SQL-92, a zatem bardziej przenośne.
Ściśle mówiąc, w wersji standardowej będzie
SUBSTRING (my_column FROM 1 FOR 1)
Chodzi o to, przekształcenie z jednego do drugiego, a tym samym podobnego do zmienności dostawcy jest trywialne.
p.s. Niedawno zauważyłem, że funkcje w standardowym SQL są celowo przeciwne, ponieważ mają listy parametrów, które nie są konwencjonalnymi komisjonistami, aby uczynić je łatwo identyfikującymi jako pochodzące ze standardu!
Dziękujemy, LEWY (str, n) nie jest obsługiwany przez wiele formatów (w tym ten, którego używam). – GreySage
Jeśli szukać pierwszy char string w SQL ciąg
SELECT CHARINDEX('char', 'my char')
=> return 4
WEJŚCIE
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
Jest to proste do osiągnięcia tego celu poprzez następujące:
DECLARE @SomeString NVARCHAR(20) = 'This is some string'
DECLARE @Result NVARCHAR(20)
i albo
SET @Result = SUBSTRING(@SomeString, 2, 3)
SELECT @Result
@Result: his
LUB
SET @Result = LEFT(@SomeString, 6)
SELECT @Result
@Result: This i
- 1. C#: jak uzyskać pierwszy znak ciągu?
- 2. Gałązka: Jak uzyskać pierwszy znak w ciągu znaków
- 3. Jak uzyskać pierwszy element w ciągu znaków?
- 4. Jak zamienić znak z ciągu w SQL?
- 5. Jak uzyskać ostatni znak ciągu w powłoce?
- 6. Jak mogę się dowiedzieć, czy pierwszy znak ciągu jest liczbą?
- 7. Jak usunąć pierwszy znak jeśli jest to specyfika w SQL
- 8. jak sprawdzić pierwszy znak ciągu znaków, jeśli list, dowolna litera
- 9. Jak uzyskać miesiąc z ciągu w sql?
- 10. zmienić pierwszy znak w polu
- 11. Jak odczytać pierwszy wiersz ciągu?
- 12. Usuń pierwszy znak z jQuery
- 13. Jak zastąpić znak w SQL
- 14. Usuń ostatni znak z ciągu znaków w sql plus
- 15. (Swift) jak wydrukować znak "\" w ciągu znaków?
- 16. Znak specjalny w SQL
- 17. W Perlu, w jaki sposób mogę zastąpić tylko pierwszy znak ciągu?
- 18. Wstaw znak do łańcucha SQL
- 19. Usuń ostatni znak ciągu znaków
- 20. Jak usunąć znak z kolumny w SQL Server?
- 21. Jak sortować japoński znak w SQL
- 22. Usuń pierwszy znak z napisu jeśli 0
- 23. Jak uzyskać pierwszy nieużywany identyfikator w tabeli?
- 24. pierwszy znak czytania z pliku tekstowego: i »¿
- 25. Sortowanie tylko pierwszy znak, wzdłuż określonej kolejności
- 26. Java Zastąp znak w określonej pozycji ciągu?
- 27. Spójrz na każdy znak w ciągu znaków.
- 28. Wykryj znak chiński (wielobajtowy) w ciągu znaków
- 29. SQL Uzyskaj znak na pozycji w polu
- 30. Pierwszy znak jest odcięta kiedy BufferedReader służy
nie wiem o serwerze SQL, ale logicznie serwer bazy danych może być w stanie zoptymalizować LEFT lepsze niż SUBSTRING, gdy używa indeksu. – thomasrutter
@thomasrutter, Patrząc na plan wykonania, SQL Server (co najmniej 2008R2) wewnętrznie tłumaczy 'LEFT (colName, length)' na 'SUBSTRING (colName, 1, length)'. Więc ** nie ma żadnych optymalizacji ** tutaj, to tylko preferencja. –