Добавить пробелы перед заглавной буквой - PullRequest
0 голосов
/ 06 мая 2020

кто-нибудь знает, можно ли добавлять пробелы в строку перед каждой заглавной буквой? У меня есть запрос SQL, в котором в одном из столбцов сохранены значения без пробелов, и мне нужно добавить пробелы между объединенным словом.

Например, у меня CakeStandsUtensils и я хочу разделить на Cake Stands Utensils.

Пытался погуглить, но не уверен, правильно ли я задаю вопрос, но не смог найти никаких ответов ... :( и искренние извинения, если этот вопрос был задан здесь ранее ...

Использование MS SQL Server 2014

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Ниже предполагается, что вы открываете таблицу изнутри вашего файла accdb MS Access или имеете внешнюю ссылку на базу данных, которая распознается как часть объекта CurrentDb . Если нет, предполагается, что вы знаете, как подключиться к вашей конкретной внешней базе данных и / или серверу.

'WARNING! This contains no object testing or error checking!

'Connection to open or linked database
Dim db As Dao.Database
Set db = CurrentDb
Dim rs As Dao.Recordset
Set rs = db.OpenRecordset("SELECT * FROM TableName")

'Temporary search and append strings
Dim strField As String
Dim strAppend As String
Dim strUpdate As String

'Begin Record Traversal
rs.MoveFirst
Do While Not rs.EOF
    strField = rs!NoSpacesField
    Debug.Print strField

    'Traverse field characters
    For i = 1 To Len(strField)
        strAppend = Mid(strField, i, 1)

        'Test for capitals and append space. Asc() assumes ascii characters.
        'Use AscW() for Unicode
        If Asc(strAppend) > 64 And Asc(strAppend) < 91 Then
            strAppend = " " & strAppend
        End If
        strUpdate = strUpdate & strAppend
    Next i

    'Trim initial space and update DB field
    strUpdate = LTrim(strUpdate)
    With rs
        .Edit
        !NoSpacesField = strUpdate
        .Update
        Debug.Print !NoSpacesField
    End With
    strUpdate = ""
    rs.MoveNext
Loop
'End Record Traversal

'Cleanup
rs.Close
db.Close
1 голос
/ 06 мая 2020

Это, конечно, не тот запрос, которым я очень горжусь, но он выполняет свою работу (при условии, что вас интересуют только заглавные буквы на английском языке sh)

SELECT 
LTRIM(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
REPLACE(
YourCol COLLATE Latin1_General_100_BIN2
,'A',' A')
,'B',' B')
,'C',' C')
,'D',' D')
,'E',' E')
,'F',' F')
,'G',' G')
,'H',' H')
,'I',' I')
,'J',' J')
,'K',' K')
,'L',' L')
,'M',' M')
,'N',' N')
,'O',' O')
,'P',' P')
,'Q',' Q')
,'R',' R')
,'S',' S')
,'T',' T')
,'U',' U')
,'V',' V')
,'W',' W')
,'X',' X')
,'Y',' Y')
,'Z',' Z')
)
FROM YourTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...