如果可能的话,我需要一个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
提前致谢
答案 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
,如果是,则“剪辑”域名以仅显示第一个.