SQL获取所有列的分隔结果

SQL获取所有列的分隔结果,sql,sybase,Sql,Sybase,我正在编写一个简单的SQL语句来生成要加载到数据库中的BCP文件 这些BCP文件的格式如下: 1|name|otherfield|otherfield1 要生成这样的文件,我目前正在执行以下操作: SELECT id+"|"+name+"|"+otherfield+"|"+otherfield1+"\n" FROM table 是否有select语句可以选择每一列,而不必命名它们 差不多 SELECT * with "|" from Table 你可以用 如果您希望将输出保存在文件中,则可

我正在编写一个简单的SQL语句来生成要加载到数据库中的BCP文件

这些BCP文件的格式如下:

1|name|otherfield|otherfield1
要生成这样的文件,我目前正在执行以下操作:

SELECT id+"|"+name+"|"+otherfield+"|"+otherfield1+"\n" FROM table
是否有select语句可以选择
每一列
,而不必命名它们

差不多

SELECT * with "|" from Table
你可以用


如果您希望将输出保存在文件中,则可以尝试以下方法

SELECT *
INTO OUTFILE 'D://abc.txt'
FIELDS TERMINATED BY '|' LINES TERMINATED BY '\r\n'
FROM table

这里我使用了
\r\n
将每一行输出到新行(在windows上)

对于Sybase ASE,为什么不使用内置的bcp实用程序更改删除器呢。默认情况下,它将捕获所有列

bcp MYDATABASE..MYTABLE out MYTABLEFILE.bcp -Uusername -Ppassword -SMYSERVER -c -t|

必须使用-t选项设置列delimeter,该选项只能与指定基于“字符”(人类可读)的bcp输出的-c选项一起使用。如果您使用的是基于Unix/Linux的系统,您可能需要避开管道,例如-\t

首先,这真的是正确的方法吗?如果其中一列包含“|”怎么办?您不应该应用转义规则吗?@deceze这是一个很好的观点,不幸的是,读入这些规则的脚本“超出了我的控制”,需要|并且不支持任何转义字符。这是一个很好的老版本“它可以工作,所以不要碰它”。之前有一个mysql标签,但它已经被删除。知道为什么吗?这是Sybase数据库,不是MySQL。。。它以前被标记为mysql,但现在该标记不见了。这是针对Sybase数据库,而不是mysql
bcp MYDATABASE..MYTABLE out MYTABLEFILE.bcp -Uusername -Ppassword -SMYSERVER -c -t|