T-SQL: Выбор вершины n символы от столбца текста или столбца типа ntext

Делать это с пандами очень просто. Откройте ваш CSV-файл с пандами:

import pandas as pd
df = pd.read_csv("example.csv")
#checking the number of empty rows in th csv file
print (df.isnull().sum())
#Droping the empty rows
modifiedDF = df.dropna()
#Saving it to the csv file 
modifiedDF.to_csv('modifiedExample.csv',index=False)
8
задан p.campbell 2 August 2009 в 05:55
поделиться

4 ответа

Я думаю, что SUBSTRING будет лучшим выбором. Попробуйте следующее:

SELECT TOP 10
    C.FirstName + ' ' + C.LastName AS CustomerName
    ,SUBSTRING(C.TestimonialText,1,50) AS TestimonialSnippet
    ,C.TestimonialDate
FROM Customer AS C  
ORDER BY SUBSTRING(C.TestimonialText,1,50) DESC
12
ответ дан 3 November 2019 в 14:19
поделиться

Если вы используете SQL Server 2005 или более поздней версии, не используйте текстовый тип данных, поскольку он лишен ограничений. Используйте varchar (max) или nvarchar (max). Все строковые функции будут работать. Подробнее здесь: http://msdn.microsoft.com/en-us/library/ms178158.aspx

8
ответ дан 3 November 2019 в 14:19
поделиться

Вы ищете что-то подобное? Обратите внимание на CAST (C.TestimonialText AS VARCHAR (50)) в операторе SELECT.

SELECT TOP 10
    C.FirstName + ' ' + C.LastName AS CustomerName,
    CAST(C.TestimonialText AS VARCHAR(50)) AS TestimonialSnippet,
    C.TestimonialDate
FROM Customer AS C  
ORDER BY C.TestimonialDate DESC

Вот некоторые тестовые данные

Настройка тестовых данных

create table #t (mytext text)
insert into #t VALUES ('1234567890')
insert into #t VALUES ('123')

SELECT
  mytext,
  CAST(mytext as varchar(5)) AS Snippet
FROM #t

Результаты

mytext     Snippet
---------- -------
1234567890 12345
123        123
6
ответ дан 3 November 2019 в 14:19
поделиться

В основном случилось то, что вы указали недопустимый тип данных для первого параметра функции LEFT. Убедитесь, что вы привели текстовый тип данных как varchar или nvarchar, тогда ваш запрос определенно работает. Вот пример, который я тестировал в SQL Server 2005

Create table #Customer

(
 firstName varchar(30)
 ,lastName varchar(30)
 ,testimonial text
 ,testimonialDate DateTime

)

GO

INSERT INTO #Customer (firstName, lastName, testimonial, testimonialDate ) VALUES('Jonhn', 'Smith', 'we really really like your product and blaha ......', getDate())
GO
INSERT INTO #Customer (firstName, lastName, testimonial , testimonialDate) VALUES('Mary', 'Toe', 'we really really like your product and blaha ......', getDate() - 3)
GO
INSERT INTO #Customer (firstName, lastName, testimonial , testimonialDate) VALUES('Amanda', 'Palin', 'we really really like your product and blaha ......', getDate() -2 )
GO

SELECT TOP 3    C.FirstName + ' ' + C.LastName AS CustomerName    ,LEFT( CAST(C.Testimonial as varchar(50)),50) AS TestimonialSnippet    ,C.TestimonialDate FROM #Customer AS C  ORDER BY C.TestimonialDate DESC
GO
Drop table #Customer
GO
1
ответ дан 3 November 2019 в 14:19
поделиться
Другие вопросы по тегам:

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