У меня есть блок текста с несколькими предложениями, и я хочу разделить их и показать каждое предложение на новой строке. Я пробовал использовать CHARINDEX и SUBSTRING, но как только вы получите второе предложение, код становится очень сложным и сложным для повторения. Здесь я получил два и отказался, понимая, что код собирался быстро снежный ком:Как разделить блок текста на отдельные предложения на SQL-сервере?
DECLARE @TEXT NVARCHAR(MAX) = 'Has many applications. The price is low. The quality is good. Availability is widespread.'
DECLARE @TEXTLine1 NVARCHAR(MAX) = LEFT(@TEXT,CHARINDEX('.',@TEXT))
DECLARE @TEXTLine2 NVARCHAR(MAX) = SUBSTRING(@TEXT,CHARINDEX('.',@TEXT)+2,CHARINDEX('.',SUBSTRING(@TEXT,CHARINDEX('.',@TEXT)+2,50)))
PRINT @TEXTLine1
PRINT @TEXTLine2
Как вы можете видеть, я разделив предложения на основе полной остановки. Есть ли способ сказать SUBSTRING найти «n-й» экземпляр персонажа? Это упростит задачу.
Совершенная! Я не думал о десятичных знаках. Все, что мне нужно было добавить, это: IIF (right (Key_value, 1) = '.', Key_value, Key_value + '.'), Чтобы убедиться, что все строки вернулись с полной остановкой в конце. – SteelyDanFan
Счастливые помочь. В прошлом я был укушен этой собакой. Приветствия. –
Играла с этим сегодня - что делает линия «Set @String = Replace (@ String, @ delimeter + @ delimeter, @ delimeter)» делать? – SteelyDanFan