我有一个长度为6的SQL列。现在只想取这一列的第一个字符。SQL中有字符串函数来做这个吗?


当前回答

第一个字符为SUBSTRING (MyColumn, 1,1),前两个字符为SUBSTRING (MyColumn, 1,2)。

其他回答

LEFT(colName, 1)也会这样做。它等价于SUBSTRING(colName, 1,1)。

我喜欢LEFT,因为我觉得它更干净一点,但实际上,这两种方式都没有区别。

第一个字符为SUBSTRING (MyColumn, 1,1),前两个字符为SUBSTRING (MyColumn, 1,2)。

在选定字段中选择左前两个字符(字符串,int中的字符数)

SELECT LEFT(FName, 2) AS FirstName FROM dbo.NameMaster
SELECT SUBSTR(thatColumn, 1, 1) As NewColumn from student

我喜欢:

SUBSTRING (my_column, 1, 1)

因为它是标准SQL-92语法,因此更易于移植。


严格来说,标准版本应该是

SUBSTRING (my_column FROM 1 FOR 1)

关键是,从一种转换到另一种,从而转换到任何类似的供应商变体,都是微不足道的。

附注:最近才有人向我指出,标准SQL中的函数是故意相反的,通过使用非常规的逗号形参列表,以便使它们易于识别为来自标准SQL !