【问题标题】:How can I print the firstname only?我怎样才能只打印名字?
【发布时间】:2018-06-18 07:58:40
【问题描述】:
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

我试过这个:

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

【问题讨论】:

  • 您使用的是哪个 dbms? (该代码是特定于产品的。)
  • 我正在使用 SQL 服务器
  • 我建议更改设计。将名字和姓氏存储在两个单独的列中。
  • 这与您之前关于替换/子字符串的帖子没有什么不同。

标签: sql sql-server substring


【解决方案1】:

一个选项使用CHARINDEXSUBSTRING

SELECT
    name,
    LTRIM(SUBSTRING(name,
                    CHARINDEX(',', name) + 1,
                    LEN(name) - CHARINDEX(',', name))) AS first_name
FROM OBJ_R;

Demo

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

【讨论】:

  • 我可以使用 LENGTH
猜你喜欢
  • 1970-01-01
  • 2022-12-17
  • 1970-01-01
  • 2020-07-29
  • 2021-04-18
  • 2023-02-06
  • 2010-09-28
  • 2021-12-25
  • 1970-01-01
相关资源
最近更新 更多