我需要在where子句语句中传递参数值的子字符串
参数值为pmtr:CN
查询:
我想使用下表从下表中过滤CAN国家/地区,但我的参数值保留一位2位数字(CN),但是我必须从拥有3位数字(CAN)的数据库中过滤加拿大国家/地区的记录。我正在尝试获取参数值第一位置的子字符串,然后附加硬编码的字符“ A”,然后在下面的查询中再次获取参数值第二位置的子字符串。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.testlayout.MyViewGroup
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:gravity="top|right">
<Button
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top|right"
android:text="Hide" />
</com.testlayout.MyViewGroup>
</RelativeLayout>
尝试了子字符串功能,没有任何结果。有什么办法可以使用sql达到过滤条件?
答案 0 :(得分:0)
尝试使用变量:
declare @var =concat(pmtr[1,1],'A',pmtr[2,1])
Select a,b
from tab
where a=@var
答案 1 :(得分:0)
如果您只想过滤加拿大(CN):
Select a,b
from tab
where CASE WHEN pmtr = 'CN' and a= 'CAN' THEN 1 ELSE 0 END =1
注意:这具有硬编码条件。