0

如果可能的话,我需要一个 T-SQL 查询,它将以特定格式从列中返回值。

我可以以编程方式 (c#) 执行此操作,但是否可以使用 SQL Server 2008 进行查询?

这是当前查询

select id, server_name, domain_name 
from mastertable

电流输出:

id server_name   domanin_name
1  sys1          one.abc.in
2  sys2          two.pqr.in 
3  sys3          three.abc.in 
4  sys4          four.xyz.in

我需要将数据显示为(在 (.) 列 domain_name 之后跳过值):

id server_name domanin_name
1  sys1        one
2  sys2        two
3  sys3        three 
4  sys4        four

提前致谢

4

2 回答 2

2

您可以尝试以下方法:

SELECT id, server_name, SUBSTRING(domain_name, 1, CHARINDEX('.', domain_name) - 1)
FROM mastertable
于 2012-04-30T09:57:12.800 回答
1

你可以使用这样的东西:

SELECT
    id,
    server_name,
    mod_domain_name =
        CASE CHARINDEX('.', domain_name)
            WHEN 0 THEN domain_name
            ELSE SUBSTRING(domain_name, 1, CHARINDEX('.', domain_name) - 1)
        END
FROM mastertable

这会测试以确保在 中存在 a .domain_name如果是,它会“剪辑”域名以仅显示第一个之前的位.

于 2012-04-30T09:59:02.030 回答