Как получить первый символ строки в SQL?

Я бы попробовал использовать для этого регулярное выражение; не выписывайте парсер самостоятельно, если вам это не нужно.

Я предполагаю, что ваша строка состоит только из буквенных символов, что все цитируемые группы непусты (т. Е. Между кавычками всегда есть несколько символов), и что у вас нет открытых кавычек.

Это, кажется, работает:

import re

s = "AB'CD'E"
splits = re.findall("\"[A-z]+\"|'[A-z]+'|[A-z]", s)
# ['A', 'B', "'CD'", 'E']
",".join(splits)
# "A,B,'CD',E"

Данное регулярное выражение ищет группы буквенных символов, заключенных в двойные или одинарные кавычки, или только в одиночные символы.

227
задан slartidan 8 August 2016 в 04:32
поделиться

3 ответа

LEFT(colName, 1) will also do this, also. It's equivalent to SUBSTRING(colName, 1, 1).

I like LEFT, since I find it a bit cleaner, but really, there's no difference either way.

392
ответ дан 23 November 2019 в 03:48
поделиться

I prefer:

SUBSTRING (my_column, 1, 1)

because it is Standard SQL-92 syntax and therefore more portable.


Strictly speaking, the standard version would be

SUBSTRING (my_column FROM 1 FOR 1)

The point is, transforming from one to the other, hence to any similar vendor variation, is trivial.

p.s. It was only recently pointed out to me that functions in standard SQL are deliberately contrary, by having parameters lists that are not the conventional commalists, in order to make them easily identifiable as being from the standard!

38
ответ дан 23 November 2019 в 03:48
поделиться

SUBSTRING (MyColumn, 1, 1) для первого символа и SUBSTRING (MyColumn, 1, 2) для первых двух.

14
ответ дан 23 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: