18 Stimmen

TSQL - wie zu finden, wenn eine Spalte ein Leerzeichen char(32) hat?

TSQL - wie man herausfindet, ob eine Spalte ein Leerzeichen hat char(32) ?

select *
from [sometable]
where CHARINDEX(' ', [somecolumn]) > 0

nicht funktioniert? Irgendwelche Ideen?

0 Stimmen

Welche Werte funktionieren und welche nicht?

0 Stimmen

Welcher Typ ist das Feld somecolumn?

1voto

pradeep Punkte 11

Verwenden Sie die folgende Abfrage:

SELECT UniqueName 
FROM employee
WHERE employeeName LIKE '% %'

0voto

KellCOMnet Punkte 1789
select * from [sometable] where somecolumn like '% %'

0 Stimmen

Interessant. Es funktioniert nicht. Für eine char-Spalte gibt es alle Zeilen zurück. Bei einer varchar-Spalte funktioniert es so, wie man es erwarten würde.

2 Stimmen

@Joe. CHAR-Spalten werden mit Leerzeichen aufgefüllt, weil sie eine feste Größe haben.

0 Stimmen

In diesem Fall würde ich denken, dass der OP die Spalte zuerst RTRIm select * from [sometable] where rtrim(somecolumn) like '% %' müsste

0voto

Xanderak Punkte 58

Ich hatte genau die gleiche Frage wie formuliert, obwohl ich suchte, um zu sehen, wenn die Spalte ein Leerzeichen vs. Null hatte. Dies funktionierte für mich:

SELECT UniqueName 
FROM employee
WHERE ascii(employeeName) = 32

Die intuitive Abfrage funktioniert nicht; auch die folgende gibt alle Nullzeilen zurück:

SELECT UniqueName 
FROM employee
WHERE employeeName = ' '

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X