Sql 拆分列数据

Sql 拆分列数据,sql,sql-server-2008,Sql,Sql Server 2008,如何在sql中拆分列数据。如果存在连字符,则仅显示hpyhen之前的数据 select substring(colname, 1, charindex('-',colname)-1) from tablename 您可以组合使用子字符串和charindex 您可以使用子字符串和charindex的组合。您需要小心地测试是否存在连字符。这应该起作用: select left(colname, charindex('-', colname + '-') - 1) 如果不执行“附加额外连字符技巧”

如何在sql中拆分列数据。如果存在连字符,则仅显示hpyhen之前的数据

select substring(colname, 1, charindex('-',colname)-1)
from tablename
您可以组合使用
子字符串
charindex


您可以使用
子字符串
charindex

的组合。您需要小心地测试是否存在连字符。这应该起作用:

select left(colname, charindex('-', colname + '-') - 1)

如果不执行“附加额外连字符技巧”,则需要条件逻辑(例如
case
语句)。

需要小心测试是否存在连字符。这应该起作用:

select left(colname, charindex('-', colname + '-') - 1)

如果你不做“附加一个额外的连字符技巧”,那么你需要条件逻辑(比如
case
语句)。

你能提供一些输入是什么和输出应该是什么的例子吗?我认为你要找的词是“split”。也就是说,这就是为什么你应该规范化你的数据。任何可以由两个事物组合而来的东西几乎都应该分别存储为两个事物(因为正确地把它们分开比把它们放在一起要困难)。你能提供一些输入是什么和输出应该是什么的例子吗?我想你要找的词是“拆分”。也就是说,这就是您应该规范化数据的原因。任何可以由两个事物组合而来的东西几乎都应该作为两个事物分别存储(因为正确地将它们分开要比将它们放回一起困难)。