我在SQL Server中有一个数据列,它始终以数字开头,有时在数字后面有一个空格以及其他详细信息。这是一个文本列。我需要一个查询,如果有空格或其他信息,将删除包含空格后的所有内容。换句话说,我只需要该列中的数字。有时只有一个数字,有时不会。我可以在查询中获得帮助吗?
答案 0 :(得分:2)
试试这个
Select case When charIndex(' ', columnName) > 0
Then substring(columnName, 1, charIndex(' ', columnName)-1)
else ColumnBame End
From tableName
答案 1 :(得分:2)
试试这个(用你的名字替换mydb和textfield):
UPDATE mytable
SET textfield = LEFT(textfield+' ', CHARINDEX(' ', textfield) - 1)
WHERE CHARINDEX(' ', textfield) > 0
答案 2 :(得分:0)
我会建议这样的事情:
SELECT CASE
WHEN ISNUMERIC(SUBSTRING(YourNumber, 1)) THEN SUBSTRING(YourNumber, 1, len(YourNumber) -1)
WHEN ISNUMERIC(SUBSTRING(YourNumber, 2)) THEN SUBSTRING(YourNumber, 2, len(YourNumber) -2)
WHEN ISNUMERIC(SUBSTRING(YourNumber, 3)) THEN SUBSTRING(YourNumber, 3, len(YourNumber) -3)
WHEN ISNUMERIC(SUBSTRING(YourNumber, 4)) THEN SUBSTRING(YourNumber, 4, len(YourNumber) -4)
END
FROM TableName