Laden...

varchar nach 500Zeichen abschneiden

Erstellt von B3nj vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.083 Views
B3nj Themenstarter:in
242 Beiträge seit 2006
vor 16 Jahren
varchar nach 500Zeichen abschneiden

verwendetes Datenbanksystem: MsSql

Hallo,

Ich hole mehrere Spalten aus einer Tabelle, die ich danach in einem GridView (in einer Webanwendung) darstelle. Die Spalte "Comment" enthält teilweise leider rehct grosse Texte, diese ziehen dasgridView extrem auseinander.

Weiss vielleichd jemand wie ich direkt in der Sql-Abfrage machen kann, dass z.B. nur die ersten 500 zeichen gefolt von "..." dargestellt werden sollen?

ich hoffe ihr wisst was ich meine, ansonten könnt ich auch schnell ein beispiel machen halt mit pseudocode.

mfG b3nJ

-edit-

nach langem googeln und denken, hier die relativ simple lösung:


SELECT SubString(SubString(Comment, 0, 500) + '...', 0, len(Comment)) from tbentry

mfG b3nj

476 Beiträge seit 2004
vor 16 Jahren

hallo B3nj

oder noch etwas einfacher... also in der Form:


SELECT LEFT(Comment, 500) + '...' FROM tbentry

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

B3nj Themenstarter:in
242 Beiträge seit 2006
vor 16 Jahren

das problem bei deiner lösung ist, dass immer drei punkte angehängt werden, das soll aber nur geschehen falls der string länger als 500 zeichen ist. auch bei meiner lösung existieren ein, zwei fälle die nicht gehen.

trotzdem vielen dank 🙂

mfG b3nj

476 Beiträge seit 2004
vor 16 Jahren

hmm ok,
darauf hatte ich nicht geachtet...

was hälst du davon:


SELECT 
CASE WHEN LEN(Comment) > 500 
THEN LEFT(Comment, 497) + '...' 
ELSE Comment
FROM tbentry

das sollte dir alle Felder auf 500 Zeichen begrenzen, inklusive "..."

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de