十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
先连接再过滤效率高。
专注于为中小企业提供网站设计制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业北镇免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
不过,内连接(inner join)与where 相差不多,如果是左右连接,性能就相差太大了。
千万不要用select * from (select * from A where id=1) A inner join (select * from B where id=2) B
on A.id = B.AAAid这样的代码,性能是最不好的,如果记录量大,开销非常大。
bcp肯定可以带where条件的,只要后面的sql能够正确执行就没问题,下面的是个字符串变量,参数有点多请无视,你可以打印出来参考下语法结构
SET @V_TMP = ''bcp "SELECT CONVERT(NVARCHAR(8),T.AS_OF_DATE,112)+ ''''|+|''''+ T.ITEM_ID+ ''''|+|''''+ D.ITEM_DESC+ ''''|+|''''+ T.ISO_CURRENCY_CD+ ''''|+|''''+ convert(nvarchar(100),T.SCENARIO_NUM)+ ''''|+|''''+ D1.SCENARIO_DESC+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_1M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_1M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_1M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_2M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_2M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_2M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_3M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_3M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_3M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_4M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_4M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_4M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_5M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_5M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_5M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_6M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_6M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_6M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_7M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_7M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_7M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_8M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_8M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_8M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_9M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_9M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_9M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_10M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_10M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_10M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_11M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_11M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_11M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.AVERAGEBALANCE_12M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.INTERESTINCOME_12M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_12M),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),AVERAGEBALANCE_TOTAL),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),INTERESTINCOME_TOTAL),'''''''')+ ''''|+|''''+ ISNULL(convert(nvarchar(100),T.PROFITRATE_TOTAL),'''''''') FROM ALM_REPORT.dbo.FACT_ALM_BSC_A25_D T LEFT JOIN ALM_REPORT.DBO.DIM_ITEM_ALM_BSC_A25 D ON T.ITEM_ID = D.ITEM_ID LEFT JOIN ALM_REPORT.DBO.DIM_ALM_IRRISK_SCENE D1 ON T.SCENARIO_NUM = D1.SCENARIO_NUM AND D1.AS_OF_DATE = alm_vpdm.dbo.F_GET_DATA_DT() WHERE t.AS_OF_DATE = alm_vpdm.dbo.F_GET_DATA_DT() ORDER BY T.SCENARIO_NUM,ISO_CURRENCY_CD,D.ITEM_ID" queryout D:\todw\'' + CONVERT(NVARCHAR(8),@V_DATA_DT,112) + ''\alm_jlxsrmn.dat -S 128.160.11.3 -U ALM_ETLVP_USER -P ALM_ETLVP_USER -c''
这问题,id分别是两个表的主键吗?
如果是主键:
select a.* from a,b where a.id=b.id and a.dateb.date
如果不是主键,就看你具体要怎么弄了,最好你自己弄点数据来举例说明。
估计你不是只想过滤掉湖南省三个字吧,就是有湖北省武汉市,你也想把湖北省过滤掉的吧?
如果是这样的话你去看下SUBSTRING()这个函数,就是取字符串的字串。
原理是这样的,你首先找出字符串中第一个“省”出现的位置,把该位置后的字符串取出来就是你想要的了。
给你一个例子吧,就上面你那个湖南省的,查询语句可以这么写:
SELECT SUBSTRING('湖南省湘潭市湘乡市', CHARINDEX('省', '湖南省湘潭市湘乡市') + 1,
LEN('湖南省湘潭市湘乡市'))
输出:湘潭市雨湖区
希望能帮到你
declare @A varchar(100);
set @A='AAAAAAbb';
set @A=REPLACE(@A,'b','')
select @A
--显示结果 AAAAAA
自己看着办吧,我只能帮助这么多了,你说的若是特殊字符单引号的话太他妈麻烦了,不想拼