具有特定格式的SQL SELECT查询输出

时间:2012-04-30 09:48:29

标签: sql-server-2008 tsql

如果可能的话,我需要一个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

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以尝试以下方式:

SELECT id, server_name, SUBSTRING(domain_name, 1, CHARINDEX('.', domain_name) - 1)
FROM mastertable

答案 1 :(得分: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

此测试用于确保.中有domain_name,如果是,则“剪辑”域名以仅显示第一个.