Удалите одинарные кавычки в одном из столбцов таблицы на сервере SQl - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь реализовать запрос на удаление одиночных кавычек, существующих в нескольких строках во всем столбце.

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

SELECT CASE WHEN RIGHT(saleDate,1) = '"' AND LEFT(saleDate,1) = '"' THEN REVERSE(STUFF(REVERSE(STUFF(saleDate, 1, 1, '')), 1, 1, '')) 
       WHEN RIGHT(saleDate,1) = '"' THEN REVERSE(STUFF(REVERSE(saleDate), 1, 1, '')) 
       WHEN LEFT(saleDate,1) = '"' THEN STUFF(saleDate, 1, 1, '')
       ELSE saleDate END as saleDate
FROM [Staging].[Target_ActivationFlowPrepaidAct];

SET saleDate = REPLACE(saleDate,'"', '')

SELECT TRIM(leading '' FROM saleDate) FROM [Staging].[Target_ActivationFlowPrepaidAct]

Данные -

saleDate
2020/04/20 12:42:05
2020/04/22 11:35:58
2020/04/24 08:10:50
2020/04/25 10:06:59
'2018-11-29 12:47:23'
'2018-12-04 18:36:08'
'2018-12-10 11:33:09'
'2018-12-15 12:33:08'

вывод -

saleDate
2020/04/20 12:42:05
2020/04/22 11:35:58
2020/04/24 08:10:50
2020/04/25 10:06:59
2018-11-29 12:47:23
2018-12-04 18:36:08
2018-12-10 11:33:09
2018-12-15 12:33:08

Ответы [ 2 ]

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

Я полагаю, вы просто ищете REPLACE()

CREATE View MyData AS
SELECT
'2020/04/20 12:42:05' Value
UNION ALL SELECT '2020/04/22 11:35:58'
UNION ALL SELECT '2020/04/24 08:10:50'
UNION ALL SELECT '2020/04/25 10:06:59'
UNION ALL SELECT '2018-11-29 12:47:23'
UNION ALL SELECT '''2018-12-04 18:36:08'''
UNION ALL SELECT '''2018-12-10 11:33:09'''
UNION ALL SELECT '''2018-12-15 12:33:08''';

SELECT Value, REPLACE(Value, '''', '') OutputValue
FROM MyData;

Вот db <> fiddle

0 голосов
/ 28 мая 2020

Не храните даты в виде строк. Вместо этого вы должны использовать date -подобный тип данных ... и не нужно задавать этот вопрос.

Тем не менее, если вы хотите удалить ведущие и конечные одинарные кавычки, вы можете использовать TRIM():

SELECT TRIM('''' from saledate) orderdate
FROM [Staging].[Target_ActivationFlowPrepaidAct];

Обратите внимание, что одинарные кавычки необходимо экранировать с помощью дополнительных одинарных кавычек.

Достоинством этого подхода является то, что он удаляет одинарные кавычки только в начале и в конце строки, невозможно встроенные строки. Хотя это, кажется, не имеет значения для вашего варианта использования, это может быть важно в более сложных ситуациях.

...