我试图以多种形式显示数据,但我对MSSQL很新。有一个包含50行的表格,其中包含01Jan2017
字段,但我需要显示此字段,如01/01/2017
。我如何在MSSQL中实现这一点?。
我尝试了一些小游标示例,因为这只是一个示例,我将进一步编辑数据,我需要迭代所请求的每一行并执行多次编辑。到目前为止我所取得的成就是:
CREATE PROCEDURE dbo.text2
AS
select TOP (50) * FROM table;
GO
这将显示50行,但我无法通过其行或列进行迭代。我也试过
DECLARE cur_mkt CURSOR FOR
select TOP (50) [field] FROM table
OPEN cur_mkt
FETCH NEXT FROM cur_mkt INTO @A
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT @A
FETCH NEXT FROM cur_mkt INTO @A
END
CLOSE cur_mkt
DEALLOCATE cur_mkt
但是这只会显示一列,并且它不是一个可行的解决方案,因为我应该能够使用至少150列。
我也尝试过功能但我无法实现它。你能不能给我一个更好的指示,看看该尝试什么?。
表格中的数据示例如下
ID DATE PIECE1 PIECE2
1 01Jan2017 ABC DEF
2 02Jan2017 ABC DEF
现在在结果中,必须显示数据
ID DATE PIECE1 PIECE2 JOIN
1 01/01/2017 ABC DEF ABCDEFGHE
2 02/01/2017 ABC DEF ABCDEFGHI
" GHE"或者" GHI"在连接的行上添加了一个字符串,可以是GHE或GHI。
提前致谢。
答案 0 :(得分:2)
Select convert(varchar(10),convert(date,'15Jan2017'),101)
返回
01/15/2017
编辑 - 针对新的Infor进行了更新
Select Top 50 -- << Optional
A.ID
,Date = convert(varchar(10),convert(date,A.[DATE]),101)
,A.PIECE1
,A.PIECE2
,[JOIN] = A.PIECE1+A.PIECE2+B.OTHERFIELD
From Table1 A
Join Table2 B on (A.ID=B.ID)
会返回这样的内容
ID Date PIECE1 PIECE2 JOIN
1 01/01/2017 ABC DEF ABCDEFxxx
2 01/02/2017 ABC DEF ABCDEFyyy