我所有的东西似乎都是一个非常直截了当的问题,我一直无法弄明白。例如,如果我有一个像T6L 7H5
这样的文本字符串。使用SQL我需要从此字符串中删除内部空格,以便显示为T6L7H5
。
需要考虑的事项:
REPLACE('T6L 7H5', ' ', '')
不是
选项在这里。答案 0 :(得分:2)
无法测试这个,所以吐痰,但你应该能够利用子串和位置:
SELECT SUBSTRING('T6L 7H5', 1, POSITION (' ' IN 'T6L 7H5')-1) || SUBSTRING('T6L 7H5', POSITION (' ' IN 'T6L 7H5')+1, CHARACTER_LENGTH('T6L 7H5') - POSITION (' ' IN 'T6L 7H5') )
如果该字段的格式与您的示例一致,那么:
substring('T6L 7H5',1,3)||substring('T6L 7H5',4,3)
答案 1 :(得分:1)
对于单个空格,您可以使用POSITION()
和SUBSTRING()
。您必须为POSITION()
函数返回的空白位置进行偏移。
WITH CTE(FieldName) AS
(SELECT 'TB7 TCH' AS FieldName)
SELECT SUBSTRING(FieldName FROM 1 FOR (POSITION(' ' IN FieldName) - 1))
|| SUBSTRING(FieldName FROM (POSITION(' ' IN FieldName) + 1))
FROM CTE;
答案 2 :(得分:0)
尝试使用substr(); 例如:4 =从位置4开始&& 1 =删除一个字符。
substr(Table1.fieldname, 4,1)