Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我怎样才能只打印名字?_Sql_Sql Server_Substring - Fatal编程技术网

Sql 我怎样才能只打印名字?

Sql 我怎样才能只打印名字?,sql,sql-server,substring,Sql,Sql Server,Substring,而不是 SELECT TOP 1 REPLACE(name, , '' ) FROM OBJ_R) AS lastname And SELECT SUBSTRING(NAME FROM 1 FOR POSITION(',' IN NAME)-1) FROM OBJ_R 我试过这个: Beyeler,Nicole Nicole Müller, Barbara Barbara

而不是

SELECT TOP 1 REPLACE(name, , '' ) 
  FROM OBJ_R) AS lastname 
   And
SELECT SUBSTRING(NAME 
                     FROM 1 FOR POSITION(',' IN NAME)-1) 
                     FROM OBJ_R
我试过这个:

 Beyeler,Nicole     Nicole
 Müller, Barbara    Barbara
 Ostmann,Heinz     Heinz

一个选项将
CHARINDEX
子字符串一起使用:

SELECT SUBSTRING(NAME 
  FROM 1 FOR POSITION(',' IN NAME)-1) 
  FROM OBJ_R


注意:我在上面使用了
LTRIM
,因为您的示例数据意味着逗号后面、姓氏后面可能有空格。如果没有,则可以将其删除。

您使用的是哪种dbms?(该代码是特定于产品的。)我使用SQL Server,我建议进行设计更改。将名字和姓氏存储在两个单独的列中。这可能与您之前关于替换/子字符串的文章相同。我可以使用长度
SELECT
    name,
    LTRIM(SUBSTRING(name,
                    CHARINDEX(',', name) + 1,
                    LEN(name) - CHARINDEX(',', name))) AS first_name
FROM OBJ_R;