我想按列标题对一个动态存储过程的结果进行排序。
例如,我的存储过程返回此表:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
现在,我想创建一个存储过程来执行该动态存储过程,但这一次得到按列标题排序的结果,如下所示:
String path = Environment.getExternalStorageDirectory()+ "/DCIM/Camera/1.jpg";
File imgFile = new File(path);
if(imgFile.exists())
{
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView imageView=(ImageView)findViewById(R.id.imageView);
imageView.setImageBitmap(myBitmap);
}else{
System.out.println("Image does not exist");
}
我创立了这个问题的答案,但我不确定我的方式是正确还是简单的方法!
我可以轻松地实现这个问题吗?
修改
我的答案不适用于╔══════╦════════╦════╦══════╦═════════════╦═════════════╦════════╗
║ name ║ family ║ id ║ type ║ description ║ create_date ║ row_no ║
╚══════╩════════╩════╩══════╩═════════════╩═════════════╩════════╝
数据类型的列!因为╔═════════════╦═════════════╦════════╦════╦══════╦════════╦══════╗
║ create_date ║ description ║ family ║ id ║ name ║ row_no ║ type ║
╚═════════════╩═════════════╩════════╩════╩══════╩════════╩══════╝
不支持。
答案 0 :(得分:2)
这是我的例子,希望这有帮助:
CREATE TABLE [dbo].[Test](
[text1] [nvarchar](500) NULL,
[text4] [nvarchar](500) NULL,
[text3] [nchar](10) NULL
) ON [PRIMARY]
GO
create proc sp_TableOrderBy
@tableName varchar(100)
as
declare @sql nvarchar(max)
declare @tableColOrderBy nvarchar(max)
SELECT @tableColOrderBy = COALESCE(@tableColOrderBy + ', ', '') + Name
FROM sys.columns
WHERE object_id = OBJECT_ID(@tableName)
order by name
set @sql = 'select ' + @tableColOrderBy + ' from ' + @tableName
execute sp_executesql @sql
exec sp_TableOrderBy 'Test'
答案 1 :(得分:0)
我创建了一个SP来执行以下步骤进行排序:
1)将动态SP结果插入XML
2)在OPENQUERY
表中查找我的查询结果列,因为我的SP结果现在存储在临时表中。
3)对已创建的列标题进行排序,并按此模式在字符串中插入:
[col1],[col2],[col3],...
4)创建一个T-SQL这个模型:
'SELECT'+'排序列:[col1],[col2],[col3],...'+'FROM'+'#temptable'
5)执行创建的T-SQL以显示已排序的SP结果。
在测试项目中,我的动态SP名称为:#TempTable
。
现在Sorter SP代码是:
tempdb.sys.[columns]