SELECT *
FROM StateTable
WHERE state IN(
SELECT value
FROM STRING_SPLIT(@states, ',') )
此代码将打印数组中值的索引,如果Entry不在数组中,如何改进它以打印错误消息
答案 0 :(得分:2)
你可以添加一个标志变量, 循环前清除, 找到值时设置, 如果标志仍为空,则在循环后打印错误消息。
found=
for i in "${!my_array[@]}"; do
if [[ "${my_array[$i]}" = "${value}" ]]; then
echo "${i}"
found=1
fi
done
if [ ! "$found" ]; then
echo Error: no such value in the array: $value
fi
可替换地, 您可以使用关联数组来保存值的索引及其在数组中的位置:
my_array=(red orange green)
declare -A index
for ((i = 0; i < ${#my_array[@]}; i++)); do
index[${my_array[$i]}]=$i
done
local value=$1
if [ "${index[$value]}" ]; then
echo "${index[$value]}"
else
echo Error: no such value in the array: $value
fi