求一条有技巧的SQL语句

tubo_true 2006-12-25 09:56:28


在Oracle数据库中,clob字段是不能正确显示的

有一张表,假如有colb字段,我想要一条SQL语句

把除了clob字段的列不显示外,其余的全部显示。

表:table1
列:
a,
b,
c(clob类型),
...
z,
z0,
z1,
...
列名够多
怎样写SQL语句,把除了C列之外的字段全部显示。
请高手指点
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gc_ding 2006-12-26
  • 打赏
  • 举报
回复
用动态SQL(Dynamic SQL)

Declare @Col_table1 nvarchar(4000) ,@Col_table2 nvarchar(4000) ,@DySQL nvarchar(4000)
SELECT @Col_table1='',@Col_table2=''
SELECT @Col_table1=@Col_table1+COLUMN_NAME+','
From INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='table1'
AND COLUMNPROPERTY(Object_ID('table1'),COLUMN_NAME,'IsIdentity')=0
ORDER BY ORDINAL_POSITION

SELECT @Col_table2=@Col_table2+COLUMN_NAME+','
From INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='table2'
AND COLUMNPROPERTY(Object_ID('table2'),COLUMN_NAME,'IsIdentity')=0
ORDER BY ORDINAL_POSITION

SELECT @Col_table1=LEFT(@Col_table1,LEN(@Col_Table1)-1),@Col_Table2=LEFT(@Col_Table2,LEN(@Col_Table2)-1)
SET @DySQL=
' INSERT INTO table1 (' +@Col_Table1+')
SELECT '+@Col_Table2 +' From table2 '

EXEC (@DySQL)
vbman2003 2006-12-25
  • 打赏
  • 举报
回复
变通一下
如果要多次用到类似这样的SQL语句,字段特别多,只有个别字段不用显示,写起来够麻烦,那么你就声明一个全局字符串变量,使用的时候用replace处理一下.

dim strFld as string
strFld="a,b,c,d,e,f,g....."

dim sql string
sql="select "& replace(strFld,",c",vbnullstring) &" from tb where ......"
vbman2003 2006-12-25
  • 打赏
  • 举报
回复
你这样的要求,直接用SQL语句做不到
蔡健常熟 2006-12-25
  • 打赏
  • 举报
回复
列名多的不能依次写出来,设计那样的表有点问题的。
tubo_true 2006-12-25
  • 打赏
  • 举报
回复
不要让我列名依次打出来
穷举法排除

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧