表的行应该是列名 [英] Rows of a table should be a column name

查看:80
本文介绍了表的行应该是列名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含abc_def_ghi的行的表和另一个包含123_456_789的行的表。



create table t_info(infoId varchar(255),PKey varchar( 255))

插入t_info值('ZC','abc_def_ghi')

create table t_value(infoId varchar(255),PKey varchar(255))

插入t_value值('ZC','123_456_789')

我需要一个选择查询,显示输出如下



abc def ghi

123 456 789



请帮助我



我尝试了什么:



我尝试用'_'分割值。但我坚持制作专栏名称



选择

CHARINDEX('_',PKey)> 0

然后

SUBSTRING(PKey,1,CHARINDEX('_',PKey)-1)

别用PKey结束名字,

CASE WHEN CHARINDEX('_',PKey)> 0

那么SUBSTRING(PKey,CHARINDEX('_',PKey)+ 1,len(PKey))

ELSE NULL END作为姓氏
来自t_value的
其中infoId ='ZC'

I Have a table with a row containing abc_def_ghi and another table with a row containing 123_456_789.

create table t_info (infoId varchar(255),PKey varchar(255))
insert into t_info values ('ZC','abc_def_ghi')
create table t_value (infoId varchar(255),PKey varchar(255))
insert into t_value values ('ZC','123_456_789')
I need a single select query which displays the output as below

abc def ghi
123 456 789

Kindly help me

What I have tried:

I tried for splitting the values with '_'. But i'm stuck in the making the column name

select
case when CHARINDEX('_',PKey)>0
then
SUBSTRING(PKey,1,CHARINDEX('_',PKey)-1)
else PKey end firstname,
CASE WHEN CHARINDEX('_',PKey)>0
THEN SUBSTRING(PKey,CHARINDEX('_',PKey)+1,len(PKey))
ELSE NULL END as lastname
from t_value where infoId='ZC'

推荐答案

这就是你想要的吗?



SELECT REPLACE(i.pkey,'_','')AS Expr2,REPLACE(v.pkey,'_','')AS Expr1

FROM t_info AS i INNER JOIN

t_value AS v ON i.infoID = v.infoID;
is this what you're trying to do ?

SELECT REPLACE(i.pkey, '_', ' ') AS Expr2, REPLACE(v.pkey, '_', ' ') AS Expr1
FROM t_info AS i INNER JOIN
t_value AS v ON i.infoID = v.infoID ;


这篇关于表的行应该是列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆