shell中使用SQL实现查询
先把文本进行格式处理,然后以空格为分隔符,取第二个空格后的字串,排序,去重,再降序排列,取前5个
arr=($(cat 0100055F_Detail.txt|sed -e '/:/d'|awk -F ' ' '{print$2}'|sort|uniq -c|sort -nr|head -5|awk '{print $2}'))
len=${#arr[@]} 获取数组长度
for((i=0;i<$len;i++))
do
echo ${arr[$i]}
mysql -uroot -p123456 -e "select location from IPLocation.IPLocation where IP_address='${arr[$i]}'"|sed 's/\t/,/g' >> table.csv 执行查询:-u后是用户名,-p后事密码,-e表示执行;
done
cat table.csv|sed -e '/location/d'>table1.csv
paste -d ',' result.csv table1.csv >last.csv 两个文件按列合并,并且两文件的结合列中用逗号分隔。
相关文档:
1.读出表中的字段名
ResultSet rs = test.selectSql("SELECT * from datainfo");
java.sql.ResultSetMetaData md=rs.getMetaData(); //读出数据库的字段名
int nColumn=md.getColumnCount(); //字段总数
for(int i=0;i<nColumn;i++)
& ......
条件:
拥有sa权限
开启 xp_cmdshell
方法:
开启/关闭 xp_cmdshell 必须在 master 库执行
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE ......
已成功与服务器建立连接,但是在登录前的握手期间发生错误的处理方法
在用SQL SERVER 用户登陆SQL SERVER 2005时,弹出一个对话框,提示" 已成功与服务器建立连接,但是在登录前的握手期间发生错误",查找了一下原因,原来是SQL SERVER 2005时禁用TCP/IP登陆了,打开SQL SERVER 2005菜 ......
来源http://hi.baidu.com/smilevt/blog/item/04bddeef0fe3f42e2cf5348b.html这里还有很多sql server的帖子
1. 当前系统日期、时间
select getdate()
2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值
例如:向日期加上2天
select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00. ......
CREATE procedure SqlPager_Ex
@sqlstr varchar(8000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数,
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursorope ......